溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Python中執(zhí)行SQL、Excel任務(wù)

發(fā)布時(shí)間:2021-06-12 17:09:46 來源:億速云 閱讀:180 作者:Leah 欄目:編程語言

怎么在Python中執(zhí)行SQL、Excel任務(wù),很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

01 導(dǎo)入數(shù)據(jù)

你可以導(dǎo)入.sql 數(shù)據(jù)庫并用 SQL 查詢中處理它們。在Excel中,你可以雙擊一個(gè)文件,然后在電子表格模式下開始處理它。在 Python 中,有更多復(fù)雜的特性,得益于能夠處理許多不同類型的文件格式和數(shù)據(jù)源的。

使用一個(gè)數(shù)據(jù)處理庫 Pandas,你可以使用 read 方法導(dǎo)入各種文件格式。使用這個(gè)方法所能導(dǎo)入完整的文件格式清單是在 Pandas 文檔中。你可以導(dǎo)入從 CSV 和 Excel 文件到 HTML 文件中的所有內(nèi)容!

使用 Python 的最大優(yōu)點(diǎn)之一是能夠從網(wǎng)絡(luò)的巨大范圍中獲取數(shù)據(jù)的能力,而不是只能訪問手動下載的文件。在 Python 的requests 庫可以幫助你分類不同的網(wǎng)站,并從它們獲取數(shù)據(jù),而 BeautifulSoup 庫可以幫助你處理和過濾數(shù)據(jù),那么你將精確得到你所需要的。如果你要去這條路線,請小心使用權(quán)問題。

在這個(gè)例子中,我們將獲取許多國家人均 GDP(一個(gè)技術(shù)術(shù)語,意思是一個(gè)國家的人均收入)的維基百科表格,并在 Python 中使用 Pandas 庫對數(shù)據(jù)進(jìn)行排序。

首先,導(dǎo)入我們需要的庫。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

需要 Pandas 庫處理我們的數(shù)據(jù)。需要 numpy 庫來執(zhí)行數(shù)值的操作和轉(zhuǎn)換。我們需要 requests 庫來從網(wǎng)站獲取 HTML 數(shù)據(jù)。需要 BeautifulSoup 來處理這些數(shù)據(jù)。最后,需要 Python(re)的正則表達(dá)式庫來更改在處理數(shù)據(jù)時(shí)將出現(xiàn)的某些字符串。

在 Python 中,不需要知道很多關(guān)于正則表達(dá)式的知識,但它們是一個(gè)強(qiáng)大的工具,可用于匹配和替換某些字符串或子字符串。如果你想了解更多,請參考以下內(nèi)容。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

02 信任這個(gè)網(wǎng)站的一些代碼

這是一個(gè)更具技術(shù)性的解釋,詳細(xì)說明如何使用 Python 代碼來獲取 HTML 表格。

你可以將上面的代碼復(fù)制粘貼到你自己的 Anaconda 中,如果你用一些 Python 代碼運(yùn)行,可以迭代它!

下面是代碼的輸出,如果你不修改它,就是所謂的字典。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

你會注意到逗號分隔起來的括號的 key-value 列表。每個(gè)括號內(nèi)的列表都代表了我們 dataframe 中的一行,每列都以 key 表示:我們正在處理一個(gè)國家的排名,人均 GDP(以美元表示)及其名稱(用「國家」)。

有關(guān)數(shù)據(jù)結(jié)構(gòu),如列表和詞典,如何在 Python 中的運(yùn)行的更多信息,本篇將有所幫助。

幸運(yùn)的是,為了將數(shù)據(jù)移動到 Pandas dataframe 中,我們不需要理解這些數(shù)據(jù),這是將數(shù)據(jù)聚合到 SQL 表或 Excel 電子表格的類似方式。使用一行代碼,我們已經(jīng)將這些數(shù)據(jù)分配并保存到 Pandas dataframe 中 —— 事實(shí)證明是這種情況,字典是要轉(zhuǎn)換為 dataframe 的完美數(shù)據(jù)格式。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

通過這個(gè)簡單的 Python 賦值給變量 gdp,我們現(xiàn)在有了一個(gè) dataframe,可以在我們編寫 gdp 的時(shí)候打開和瀏覽。我們可以為該詞添加 Python 方法,以創(chuàng)建其中的數(shù)據(jù)的策略視圖。作為我們剛剛在 Python 中使用等號和賦值的一點(diǎn)深入了解,很有幫助。

03 快速查看數(shù)據(jù)

現(xiàn)在,如果要快速查看我們所做的工作,我們可以使用 head() 方法,它與 Excel 中的選擇幾行或SQL中的 LIMIT 方法非常相似。輕松地使用它來快速查看數(shù)據(jù)集,而無需加載整個(gè)數(shù)據(jù)集!如果要查看特定數(shù)量的行,還可以在 head() 方法中插入行數(shù)。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

我們得到的輸出是人均 GDP 數(shù)據(jù)集的前五行(head 方法的默認(rèn)值),我們可以看到它們整齊地排列成三列以及索引列。請注意,Python 索引從0開始,而不是1,這樣,如果要調(diào)用 dataframe 中的第一個(gè)值,則使用0而不是1!你可以通過在圓括號內(nèi)添加你選擇的數(shù)字來更改顯示的行數(shù)。試試看!

04 重命名列

有一件你在 Python 中很快意識到的事是,具有某些特殊字符(例如$)的名稱處理可能變得非常麻煩。我們將要重命名某些列,在 Excel 中,可以通過單擊列名稱并鍵入新名稱,在SQL中,你可以執(zhí)行 ALTER TABLE 語句或使用 SQL Server 中的 sp_rename。

在 Pandas 中,這樣做的方式是rename 方法。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

在實(shí)現(xiàn)上述方法時(shí),我們將使用列標(biāo)題 「gdp_per_capita」 替換列標(biāo)題「US $」。一個(gè)快速的 .head() 方法調(diào)用確認(rèn)已經(jīng)更改。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

05 刪除列

有一些數(shù)據(jù)損壞!如果你查看 Rank 列,你會注意到散亂的隨機(jī)破折號。這不是很好,由于實(shí)際的數(shù)字順序被破壞,這使得 Rank 列無用,特別是使用 Pandas 默認(rèn)提供的編號索引。

幸運(yùn)的是,使用內(nèi)置的 Python 方法:del,刪除列變得很容易。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

現(xiàn)在,通過另外調(diào)用 head 方法,我們可以確認(rèn) dataframe 不再包含 rank 列。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

06 在列中轉(zhuǎn)換數(shù)據(jù)類型

有時(shí),給定的數(shù)據(jù)類型很難使用。這個(gè)方便的教程將分解 Python 中不同數(shù)據(jù)類型之間的差異,以便你需要復(fù)習(xí)。

在 Excel 中,你可以右鍵單擊并找到將列數(shù)據(jù)轉(zhuǎn)換為不同類型的數(shù)據(jù)的方法。你可以復(fù)制一組由公式呈現(xiàn)的單元格,并將其粘貼為值,你可以使用格式選項(xiàng)快速切換數(shù)字,日期和字符串。

有時(shí)候,在 Python 中切換一種數(shù)據(jù)類型為其他數(shù)據(jù)類型并不容易,但當(dāng)然有可能。

我們首先在 Python 中使用 re 庫。我們將使用正則表達(dá)式來替換 gdp_per_capita 列中的逗號,以便我們可以更容易地使用該列。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

re.sub 方法本質(zhì)上是使用空格替換逗號。以下詳細(xì)介紹了 re庫 的各個(gè)方法。

現(xiàn)在我們已經(jīng)刪除了逗號,我們可以輕易地將列轉(zhuǎn)換為數(shù)字。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

現(xiàn)在我們可以計(jì)算這列的平均值。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

我們可以看到,人均 GDP 的平均值約為13037.27美元,如果這列被判斷為字符串(不能執(zhí)行算術(shù)運(yùn)算),我們就無法做到這一點(diǎn)?,F(xiàn)在,可以對我們以前不能做的人均 GDP 列進(jìn)行各種計(jì)算,包括通過不同的值過濾列,并確定列的百分位數(shù)值。

07 選擇/過濾數(shù)據(jù)

任何數(shù)據(jù)分析師的基本需求是將大型數(shù)據(jù)集分割成有價(jià)值的結(jié)果。為了做到這一點(diǎn),你必須檢查一部分?jǐn)?shù)據(jù):這對選擇和過濾數(shù)據(jù)是非常有幫助的。在 SQL 中,這是通過混合使用 SELECT 和不同的其他函數(shù)實(shí)現(xiàn)的,而在 Excel 中,可以通過拖放數(shù)據(jù)和執(zhí)行過濾器來實(shí)現(xiàn)。

你可以使用 Pandas 庫不同的方法或查詢快速過濾。

作為一個(gè)快速的代表,只顯示人均 GDP 高于 5 萬美元的國家。

這是這樣做到的:

怎么在Python中執(zhí)行SQL、Excel任務(wù)

我們?yōu)橐粋€(gè)新的 dataframe 分配一個(gè)布爾索引的過濾器,這個(gè)方法基本上就是說「創(chuàng)建一個(gè)人均 GDP 超過 50000 的新 dataframe」?,F(xiàn)在我們可以顯示gdp50000。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

有12個(gè)國家的 GDP 超過 50000!

選擇屬于以 s 開頭的國家的行。

現(xiàn)在可以顯示一個(gè)新 dataframe,其中只包含以 s 開頭的國家。使用 len 方法快速檢查(一個(gè)用于計(jì)算 dataframe 中的行數(shù)的救星?。┍硎疚覀冇?25 個(gè)國家符合。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

要是我們想把這兩個(gè)過濾條件連在一起呢?

這里是連接過濾的方法。在多個(gè)過濾條件之前,你想要了解它的工作原理。你還需要了解 Python 中的基本操作符。為了這個(gè)練習(xí)的目的,你只需要知道「&」代表 AND,而「|」代表 Python 中的 OR。然而,通過更深入地了解所有基礎(chǔ)運(yùn)算符,你可以用各種條件輕松地處理的數(shù)據(jù)。

讓我們繼續(xù)工作,并在過濾選擇以「S」開頭且有大于 50,000 人均 GDP 的國家。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

現(xiàn)在過濾以「S」開頭 或人均 GDP 超過 50000 的國家。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

我們正在努力處理 Pandas 中的過濾視圖。

08 用計(jì)算機(jī)來處理數(shù)據(jù)

沒有可以幫助計(jì)算不同的結(jié)果的方法,那么 Excel 會變成什么?

在這種情況下,Pandas 大量依賴于 numpy 庫和通用 Python 語法將計(jì)算放在一起。對我們一直在研究的 GDP 數(shù)據(jù)集進(jìn)行一系列簡單的計(jì)算。例如,計(jì)算人均國民生產(chǎn)總值超過 5 萬的總和。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

這將給你答案為 770046 。使用相同的邏輯,我們可以計(jì)算各種的值 — 完整列表位于左側(cè)菜單欄下的計(jì)算/描述性統(tǒng)計(jì)部分的 Pandas 文檔。

09 數(shù)據(jù)可視化(圖表/圖形)

數(shù)據(jù)可視化是一個(gè)非常強(qiáng)大的工具 – 它允許你以可理解的格式與其他人分享你獲得的見解。畢竟,一張照片值得一千字。SQL 和 Excel 都具有將查詢轉(zhuǎn)換為圖表和圖形的功能。使用 seaborn 和 matplotlib 庫,你可以使用 Python 執(zhí)行相同操作。

有關(guān)數(shù)據(jù)可視化選項(xiàng)的綜合的教程 – 我最喜歡的是這個(gè) Github readme document (全部在文本中),它解釋了如何在 Seaborn 中構(gòu)建概率分布和各種各樣的圖。這應(yīng)該讓你了解 Python 中數(shù)據(jù)可視化的強(qiáng)大功能。如果你感到不知所措,你可以使用一些解決方案,如Plot.ly,這可能更直觀地掌握。

我們不會檢查每一個(gè)數(shù)據(jù)可視化選項(xiàng),只要說使用 Python,可以比任何 SQL 提供的功能具有更強(qiáng)大的可視化功能,必須權(quán)衡使用 Python 獲得更多的靈活性,以及在 Excel 中通過模板生成圖表的簡易性。

在這種情況下,我們將建立一個(gè)簡單的直方圖,顯示人均 GDP 超過 5 萬美元的國家的人均 GDP 分布。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

有了這個(gè)強(qiáng)大的直方圖方法 (hist()),我們現(xiàn)在可以生成一個(gè)直方圖,顯示出大部分人均 GDP 在 5 萬到 7 萬美元之間!

10 分組和連接數(shù)據(jù)

在 Excel 和 SQL 中,諸如 JOIN 方法和數(shù)據(jù)透視表之類的強(qiáng)大工具可以快速匯總數(shù)據(jù)。

Pandas 和 Python 共享了許多從 SQL 和 Excel 被移植的相同方法??梢栽跀?shù)據(jù)集中對數(shù)據(jù)進(jìn)行分組,并將不同的數(shù)據(jù)集連接在一起。你可以看看這里的文檔。你會發(fā)現(xiàn),由 Pandas 中的merge 方法提供的連接功能與 SQL 通過 join 命令提供的連接功能非常相似,而 Pandas 還為過去在 Excel 中使用數(shù)據(jù)透視表的人提供了 pivot table 方法。

我們將制定的人均 GDP 的表格與世界銀行的世界發(fā)展指數(shù)清單進(jìn)行簡單的連接。

首先導(dǎo)入世界發(fā)展指數(shù)的 .csv文件。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

使用 .head() 方法快速查看這個(gè)數(shù)據(jù)集中的不同列。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

現(xiàn)在我們完成了,我們可以快速看看,添加了幾個(gè)可以操作的列,包括不同年份的數(shù)據(jù)來源。

現(xiàn)在我們來合并數(shù)據(jù):

怎么在Python中執(zhí)行SQL、Excel任務(wù)

我們現(xiàn)在可以看到,這個(gè)表格包含了人均 GDP 列和具有不同列的遍及全國的數(shù)據(jù)。對于熟悉 SQL join 的用戶,你可以看到我們正在對原始 dataframe 的 Country 列進(jìn)行內(nèi)部連接。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

現(xiàn)在我們有一個(gè)連接表,我們希望將國家和人均 GDP 按其所在地區(qū)進(jìn)行分組。

我們現(xiàn)在可以使用 Pandas 中的 group 方法排列按區(qū)域分組的數(shù)據(jù)。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

要是我們想看到 groupby 總結(jié)的永久觀點(diǎn)怎么辦?Groupby 操作創(chuàng)建一個(gè)可以被操縱的臨時(shí)對象,但是它們不會創(chuàng)建一個(gè)永久接口來為構(gòu)建聚合結(jié)果。為此,我們必須使用 Excel 用戶的舊喜愛:數(shù)據(jù)透視表。幸運(yùn)的是,Pandas 擁有強(qiáng)大的數(shù)據(jù)透視表方法。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

你會看到我們收集了一些不需要的列。幸運(yùn)的是,使用 Pandas 中的 drop 方法,你可以輕松地刪除幾列。

怎么在Python中執(zhí)行SQL、Excel任務(wù)

怎么在Python中執(zhí)行SQL、Excel任務(wù)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI