您好,登錄后才能下訂單哦!
怎么在Python中執行SQL、Excel任務,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
你可以導入.sql 數據庫并用 SQL 查詢中處理它們。在Excel中,你可以雙擊一個文件,然后在電子表格模式下開始處理它。在 Python 中,有更多復雜的特性,得益于能夠處理許多不同類型的文件格式和數據源的。
使用一個數據處理庫 Pandas,你可以使用 read 方法導入各種文件格式。使用這個方法所能導入完整的文件格式清單是在 Pandas 文檔中。你可以導入從 CSV 和 Excel 文件到 HTML 文件中的所有內容!
使用 Python 的最大優點之一是能夠從網絡的巨大范圍中獲取數據的能力,而不是只能訪問手動下載的文件。在 Python 的requests 庫可以幫助你分類不同的網站,并從它們獲取數據,而 BeautifulSoup 庫可以幫助你處理和過濾數據,那么你將精確得到你所需要的。如果你要去這條路線,請小心使用權問題。
在這個例子中,我們將獲取許多國家人均 GDP(一個技術術語,意思是一個國家的人均收入)的維基百科表格,并在 Python 中使用 Pandas 庫對數據進行排序。
首先,導入我們需要的庫。
需要 Pandas 庫處理我們的數據。需要 numpy 庫來執行數值的操作和轉換。我們需要 requests 庫來從網站獲取 HTML 數據。需要 BeautifulSoup 來處理這些數據。最后,需要 Python(re)的正則表達式庫來更改在處理數據時將出現的某些字符串。
在 Python 中,不需要知道很多關于正則表達式的知識,但它們是一個強大的工具,可用于匹配和替換某些字符串或子字符串。如果你想了解更多,請參考以下內容。
這是一個更具技術性的解釋,詳細說明如何使用 Python 代碼來獲取 HTML 表格。
你可以將上面的代碼復制粘貼到你自己的 Anaconda 中,如果你用一些 Python 代碼運行,可以迭代它!
下面是代碼的輸出,如果你不修改它,就是所謂的字典。
你會注意到逗號分隔起來的括號的 key-value 列表。每個括號內的列表都代表了我們 dataframe 中的一行,每列都以 key 表示:我們正在處理一個國家的排名,人均 GDP(以美元表示)及其名稱(用「國家」)。
有關數據結構,如列表和詞典,如何在 Python 中的運行的更多信息,本篇將有所幫助。
幸運的是,為了將數據移動到 Pandas dataframe 中,我們不需要理解這些數據,這是將數據聚合到 SQL 表或 Excel 電子表格的類似方式。使用一行代碼,我們已經將這些數據分配并保存到 Pandas dataframe 中 —— 事實證明是這種情況,字典是要轉換為 dataframe 的完美數據格式。
通過這個簡單的 Python 賦值給變量 gdp,我們現在有了一個 dataframe,可以在我們編寫 gdp 的時候打開和瀏覽。我們可以為該詞添加 Python 方法,以創建其中的數據的策略視圖。作為我們剛剛在 Python 中使用等號和賦值的一點深入了解,很有幫助。
現在,如果要快速查看我們所做的工作,我們可以使用 head() 方法,它與 Excel 中的選擇幾行或SQL中的 LIMIT 方法非常相似。輕松地使用它來快速查看數據集,而無需加載整個數據集!如果要查看特定數量的行,還可以在 head() 方法中插入行數。
我們得到的輸出是人均 GDP 數據集的前五行(head 方法的默認值),我們可以看到它們整齊地排列成三列以及索引列。請注意,Python 索引從0開始,而不是1,這樣,如果要調用 dataframe 中的第一個值,則使用0而不是1!你可以通過在圓括號內添加你選擇的數字來更改顯示的行數。試試看!
有一件你在 Python 中很快意識到的事是,具有某些特殊字符(例如$)的名稱處理可能變得非常麻煩。我們將要重命名某些列,在 Excel 中,可以通過單擊列名稱并鍵入新名稱,在SQL中,你可以執行 ALTER TABLE 語句或使用 SQL Server 中的 sp_rename。
在 Pandas 中,這樣做的方式是rename 方法。
在實現上述方法時,我們將使用列標題 「gdp_per_capita」 替換列標題「US $」。一個快速的 .head() 方法調用確認已經更改。
有一些數據損壞!如果你查看 Rank 列,你會注意到散亂的隨機破折號。這不是很好,由于實際的數字順序被破壞,這使得 Rank 列無用,特別是使用 Pandas 默認提供的編號索引。
幸運的是,使用內置的 Python 方法:del,刪除列變得很容易。
現在,通過另外調用 head 方法,我們可以確認 dataframe 不再包含 rank 列。
有時,給定的數據類型很難使用。這個方便的教程將分解 Python 中不同數據類型之間的差異,以便你需要復習。
在 Excel 中,你可以右鍵單擊并找到將列數據轉換為不同類型的數據的方法。你可以復制一組由公式呈現的單元格,并將其粘貼為值,你可以使用格式選項快速切換數字,日期和字符串。
有時候,在 Python 中切換一種數據類型為其他數據類型并不容易,但當然有可能。
我們首先在 Python 中使用 re 庫。我們將使用正則表達式來替換 gdp_per_capita 列中的逗號,以便我們可以更容易地使用該列。
re.sub 方法本質上是使用空格替換逗號。以下詳細介紹了 re庫 的各個方法。
現在我們已經刪除了逗號,我們可以輕易地將列轉換為數字。
現在我們可以計算這列的平均值。
我們可以看到,人均 GDP 的平均值約為13037.27美元,如果這列被判斷為字符串(不能執行算術運算),我們就無法做到這一點。現在,可以對我們以前不能做的人均 GDP 列進行各種計算,包括通過不同的值過濾列,并確定列的百分位數值。
任何數據分析師的基本需求是將大型數據集分割成有價值的結果。為了做到這一點,你必須檢查一部分數據:這對選擇和過濾數據是非常有幫助的。在 SQL 中,這是通過混合使用 SELECT 和不同的其他函數實現的,而在 Excel 中,可以通過拖放數據和執行過濾器來實現。
你可以使用 Pandas 庫不同的方法或查詢快速過濾。
作為一個快速的代表,只顯示人均 GDP 高于 5 萬美元的國家。
這是這樣做到的:
我們為一個新的 dataframe 分配一個布爾索引的過濾器,這個方法基本上就是說「創建一個人均 GDP 超過 50000 的新 dataframe」。現在我們可以顯示gdp50000。
有12個國家的 GDP 超過 50000!
選擇屬于以 s 開頭的國家的行。
現在可以顯示一個新 dataframe,其中只包含以 s 開頭的國家。使用 len 方法快速檢查(一個用于計算 dataframe 中的行數的救星!)表示我們有 25 個國家符合。
要是我們想把這兩個過濾條件連在一起呢?
這里是連接過濾的方法。在多個過濾條件之前,你想要了解它的工作原理。你還需要了解 Python 中的基本操作符。為了這個練習的目的,你只需要知道「&」代表 AND,而「|」代表 Python 中的 OR。然而,通過更深入地了解所有基礎運算符,你可以用各種條件輕松地處理的數據。
讓我們繼續工作,并在過濾選擇以「S」開頭且有大于 50,000 人均 GDP 的國家。
現在過濾以「S」開頭 或人均 GDP 超過 50000 的國家。
我們正在努力處理 Pandas 中的過濾視圖。
沒有可以幫助計算不同的結果的方法,那么 Excel 會變成什么?
在這種情況下,Pandas 大量依賴于 numpy 庫和通用 Python 語法將計算放在一起。對我們一直在研究的 GDP 數據集進行一系列簡單的計算。例如,計算人均國民生產總值超過 5 萬的總和。
這將給你答案為 770046 。使用相同的邏輯,我們可以計算各種的值 — 完整列表位于左側菜單欄下的計算/描述性統計部分的 Pandas 文檔。
數據可視化是一個非常強大的工具 – 它允許你以可理解的格式與其他人分享你獲得的見解。畢竟,一張照片值得一千字。SQL 和 Excel 都具有將查詢轉換為圖表和圖形的功能。使用 seaborn 和 matplotlib 庫,你可以使用 Python 執行相同操作。
有關數據可視化選項的綜合的教程 – 我最喜歡的是這個 Github readme document (全部在文本中),它解釋了如何在 Seaborn 中構建概率分布和各種各樣的圖。這應該讓你了解 Python 中數據可視化的強大功能。如果你感到不知所措,你可以使用一些解決方案,如Plot.ly,這可能更直觀地掌握。
我們不會檢查每一個數據可視化選項,只要說使用 Python,可以比任何 SQL 提供的功能具有更強大的可視化功能,必須權衡使用 Python 獲得更多的靈活性,以及在 Excel 中通過模板生成圖表的簡易性。
在這種情況下,我們將建立一個簡單的直方圖,顯示人均 GDP 超過 5 萬美元的國家的人均 GDP 分布。
有了這個強大的直方圖方法 (hist()),我們現在可以生成一個直方圖,顯示出大部分人均 GDP 在 5 萬到 7 萬美元之間!
在 Excel 和 SQL 中,諸如 JOIN 方法和數據透視表之類的強大工具可以快速匯總數據。
Pandas 和 Python 共享了許多從 SQL 和 Excel 被移植的相同方法。可以在數據集中對數據進行分組,并將不同的數據集連接在一起。你可以看看這里的文檔。你會發現,由 Pandas 中的merge 方法提供的連接功能與 SQL 通過 join 命令提供的連接功能非常相似,而 Pandas 還為過去在 Excel 中使用數據透視表的人提供了 pivot table 方法。
我們將制定的人均 GDP 的表格與世界銀行的世界發展指數清單進行簡單的連接。
首先導入世界發展指數的 .csv文件。
使用 .head() 方法快速查看這個數據集中的不同列。
現在我們完成了,我們可以快速看看,添加了幾個可以操作的列,包括不同年份的數據來源。
現在我們來合并數據:
我們現在可以看到,這個表格包含了人均 GDP 列和具有不同列的遍及全國的數據。對于熟悉 SQL join 的用戶,你可以看到我們正在對原始 dataframe 的 Country 列進行內部連接。
現在我們有一個連接表,我們希望將國家和人均 GDP 按其所在地區進行分組。
我們現在可以使用 Pandas 中的 group 方法排列按區域分組的數據。
要是我們想看到 groupby 總結的永久觀點怎么辦?Groupby 操作創建一個可以被操縱的臨時對象,但是它們不會創建一個永久接口來為構建聚合結果。為此,我們必須使用 Excel 用戶的舊喜愛:數據透視表。幸運的是,Pandas 擁有強大的數據透視表方法。
你會看到我們收集了一些不需要的列。幸運的是,使用 Pandas 中的 drop 方法,你可以輕松地刪除幾列。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。