旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實習/?A計劃
全國統(tǒng)一咨詢熱線:010-5367 2995
首頁 > 熱門文章 > 大數(shù)據(jù)分析 > 如何將Excel和Python和Pandas結(jié)合使用

如何將Excel和Python和Pandas結(jié)合使用

時間:2020-10-06來源:lb577.com點擊量:作者:Sissi
時間:2020-10-06點擊量:作者:Sissi



  如何將Excel和Python和Pandas結(jié)合使用?為什么要學習在Python中使用Excel? Excel是最流行和廣泛使用的數(shù)據(jù)工具之一。很難找到一個不以某種方式與之合作的組織。從分析師到銷售副總裁,再到首席執(zhí)行官,各種專業(yè)人員都使用Excel進行快速統(tǒng)計和嚴重的數(shù)據(jù)處理。
 

  隨著Excel的普及,數(shù)據(jù)專業(yè)人員必須熟悉它。與Python的UI相比,使用Python或R處理數(shù)據(jù)具有明顯的優(yōu)勢,因此找到一種使用代碼使用Excel的方法至關(guān)重要。值得慶幸的是,已經(jīng)有一個很棒的工具叫做,可以在Python中使用Excel pandas。
 

  Pandas具有從Excel文件讀取各種數(shù)據(jù)的出色方法。您也可以將結(jié)果從Pandas導(dǎo)出回Excel,如果您的目標受眾更喜歡的話。Pandas非常適合其他常規(guī)數(shù)據(jù)分析任務(wù),例如:
 

  1)快速探索性數(shù)據(jù)分析(EDA)

  2)繪制有吸引力的地塊

  3)將數(shù)據(jù)輸入到scikit-learn等機器學習工具中

  4)在數(shù)據(jù)上建立機器學習模型

  5)將清理和處理過的數(shù)據(jù)帶入任意數(shù)量的數(shù)據(jù)工具
 

  Pandas在自動化數(shù)據(jù)處理任務(wù)方面比Excel更好,包括處理Excel文件。
 

  在如何將Excel和Python和Pandas結(jié)合使用中,我們將向您展示如何使用Pandas中的Excel文件。我們將介紹以下概念。
 

  1)使用必要的軟件設(shè)置計算機

  2)將數(shù)據(jù)從Excel文件讀入Pandas

  3)Pandas數(shù)據(jù)探索

  4)使用matplotlib可視化庫可視化Pandas中的數(shù)據(jù)

  5)在Pandas中處理和重塑數(shù)據(jù)

  6)將數(shù)據(jù)從Pandas移動到Excel
 

  請注意,如何將Excel和Python和Pandas結(jié)合使用并未深入探討Pandas。要進一步探索Pandas,請查看我們的課程。
 

  系統(tǒng)先決條件
 

  在如何將Excel和Python和Pandas結(jié)合使用中,我們將使用Python 3和Jupyter Notebook演示代碼。
 

  除了Python和Jupyter Notebook,您還將需要以下Python模塊:
 

  1)matplotlib –數(shù)據(jù)可視化

  2)NumPy –數(shù)值數(shù)據(jù)功能

  3)OpenPyXL –讀/寫Excel 2010 xlsx / xlsm文件

  4)大Pandas–數(shù)據(jù)導(dǎo)入,清理,探索和分析

  4)xlrd –讀取Excel數(shù)據(jù)

  5)xlwt –寫入Excel

  6)XlsxWriter –寫入Excel(xlsx)文件
 

  設(shè)置所有模塊有多種方法。我們在下面介紹三種最常見的方案。
 

  1)如果通過Anaconda軟件包管理器安裝了Python ,則可以使用以下命令安裝所需的模塊conda install。例如,要安裝Pandas,您將執(zhí)行命令– conda install pandas。

  2)如果您已經(jīng)在計算機上安裝了常規(guī)的非Anaconda Python,則可以使用來安裝所需的模塊pip。打開命令行程序并執(zhí)行命令pip install 以安裝模塊。您應(yīng)該用要安裝的模塊的實際名稱替換。例如,要安裝Pandas,您將執(zhí)行命令– pip install pandas。

  3)如果尚未安裝Python,則應(yīng)通過Anaconda軟件包管理器進行獲取。Anaconda提供了適用于Windows,Mac和Linux計算機的安裝程序。如果選擇完整的安裝程序,則將在一個軟件包中獲得所需的所有模塊以及Python和pandas。這是最簡單,最快的入門方法。
 

  數(shù)據(jù)集
 

  在如何將Excel和Python和Pandas結(jié)合使用中,我們將使用由Kaggle的IMDB分數(shù)數(shù)據(jù)創(chuàng)建的多頁Excel文件。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們的Excel文件分為三頁:“ 1900年代”,“ 2000年代”和“ 2010年代”。每張紙都包含那幾年的電影數(shù)據(jù)。
 

  我們將使用此數(shù)據(jù)集來查找電影的收視率分布,可視化具有最高收視率和凈收入的電影,并計算有關(guān)電影的統(tǒng)計信息。我們將使用Python和pandas分析和探索這些數(shù)據(jù),從而展示pandas在Python中處理Excel數(shù)據(jù)的功能。
 

  從Excel文件中讀取數(shù)據(jù)
 

  我們需要首先將數(shù)據(jù)從Excel文件導(dǎo)入到Pandas中。為此,我們首先導(dǎo)入pandas模塊。

如何將Excel和Python和Pandas結(jié)合使用
 

  然后,我們使用Pandas的read_excel方法從Excel文件中讀取數(shù)據(jù)。調(diào)用此方法的最簡單方法是傳遞文件名。如果未指定工作表名稱,則它將讀取索引中的第一張工作表(如下所示)。

如何將Excel和Python和Pandas結(jié)合使用
 

  在此,該read_excel方法將數(shù)據(jù)從Excel文件讀取到pandas DataFrame對象中。Pandas默認將數(shù)據(jù)存儲在DataFrames中。然后,我們將此DataFrame存儲到名為的變量中movies。
 

  Pandas有一個內(nèi)置DataFrame.head()方法,我們可以使用它輕松顯示DataFrame的前幾行。如果未傳遞任何參數(shù),它將顯示前五行。如果傳遞了一個數(shù)字,它將從頂部開始顯示相等的行數(shù)。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  Excel文件通常具有多個工作表,并且讀取特定工作表或全部工作表的功能非常重要。為了簡化此過程,pandasread_excel方法采用了一個稱為的參數(shù)sheetname,該參數(shù)告訴pandas從數(shù)據(jù)中讀取哪張紙。為此,您可以使用工作表名稱或工作表編號。工作表編號從零開始。如果sheetname未提供參數(shù),則默認為零,Pandas將導(dǎo)入第一張紙。
 

  默認情況下,pandas將自動分配一個從零開始的數(shù)字索引或行標簽。如果您的數(shù)據(jù)沒有具有唯一值的列,可以用作更好的索引,則可能需要保留默認索引。如果您認為有一個列可以用作更好的索引,則可以通過將index_col屬性設(shè)置為列來覆蓋默認行為。它使用一個數(shù)值來將單個列設(shè)置為索引,或者使用數(shù)值列表來創(chuàng)建一個多索引。
 

  在下面的代碼中,我們通過將零傳遞給index_col參數(shù)來選擇第一列“標題”作為索引(index = 0)。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  如上所述,我們的Excel數(shù)據(jù)文件分為三頁。我們已經(jīng)閱讀了上面的DataFrame中的第一張表。現(xiàn)在,使用相同的語法,我們還將閱讀其余兩頁。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  由于所有三個工作表都具有相似的數(shù)據(jù),但記錄運動不同,因此我們將根據(jù)上面創(chuàng)建的所有三個數(shù)據(jù)幀創(chuàng)建一個單獨的數(shù)據(jù)幀。concat為此,我們將使用pandas方法,并傳入剛剛創(chuàng)建的三個DataFrame的名稱,并將結(jié)果分配給新的DataFrame對象movies。通過保持DataFrame名稱與以前相同,我們將覆蓋先前創(chuàng)建的DataFrame。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們可以通過調(diào)用組合后的DataFrame中的行數(shù)來檢查該串聯(lián),方法是調(diào)用組合后的DataFrame中的方法shape,該方法將為我們提供行數(shù)和列數(shù)。

如何將Excel和Python和Pandas結(jié)合使用
 

  使用ExcelFile類讀取多張工作表
 

  我們還可以使用ExcelFile類來處理來自同一Excel文件的多個工作表。我們首先使用來包裝Excel文件ExcelFile,然后將其傳遞給read_excelmethod。

如何將Excel和Python和Pandas結(jié)合使用
 

  如果您正在閱讀包含大量圖紙的Excel文件并創(chuàng)建大量DataFrame,ExcelFile則與相比,它更加便捷高效read_excel。使用ExcelFile,您只需傳遞一次Excel文件,然后就可以使用它來獲取DataFrame。使用時read_excel,您每次都會傳遞Excel文件,因此會為每張紙再次加載該文件。如果Excel文件中包含許多行數(shù)很多的工作表,這可能會極大地拖累性能。
 

  探索數(shù)據(jù)
 

  現(xiàn)在,我們已經(jīng)從Excel文件中讀取了電影數(shù)據(jù)集,我們可以開始使用Pandas進行探索了。大PandasDataFrame以表格格式存儲數(shù)據(jù),就像Excel在表格中顯示數(shù)據(jù)的方式一樣。Pandas有很多內(nèi)置方法來探索我們從剛剛讀入的Excel文件中創(chuàng)建的DataFrame。
 

  我們已經(jīng)head在上一節(jié)中介紹了該方法,該方法從DataFrame的頂部開始顯示幾行。讓我們看看在探索數(shù)據(jù)集時會派上用場的其他幾種方法。
 

  我們可以使用該shape方法找出DataFrame的行數(shù)和列數(shù)。

如何將Excel和Python和Pandas結(jié)合使用
 

  這告訴我們我們的Excel文件具有5042條記錄和25列或觀察值。這對于報告記錄和列的數(shù)量并將其與源數(shù)據(jù)集進行比較很有用。
 

  我們可以使用該tail方法查看底部的行。如果未傳遞任何參數(shù),則僅返回底部的五行。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  在Excel中,您可以根據(jù)一列或多列中的值對工作表進行排序。在Pandas中,您可以使用該sort_values方法執(zhí)行相同的操作。例如,讓我們根據(jù)“總收入”列對電影數(shù)據(jù)幀進行排序。


如何將Excel和Python和Pandas結(jié)合使用

  由于我們將數(shù)據(jù)按列中的值排序,因此我們可以做一些有趣的事情。例如,我們可以顯示總收入前10名電影。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們還可以為《總收入》中的前十部電影創(chuàng)建情節(jié)。通過流行的數(shù)據(jù)可視化庫matplotlib,Pandas可以很容易地用繪圖和圖表可視化數(shù)據(jù)。用幾行代碼,您就可以開始繪圖。此外,由于您可以在代碼下直接放置圖表,因此matplotlib圖表在Jupyter Notebook中可以很好地工作。
 

  首先,我們導(dǎo)入matplotlib模塊并設(shè)置matplotlib以在Jupyter Notebook中直接顯示圖。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們將繪制一個條形圖,其中每個條形將代表前十部電影之一。為此,我們可以調(diào)用plot方法并將參數(shù)設(shè)置kind為barh。這告訴matplotlib您繪制水平條形圖。

如何將Excel和Python和Pandas結(jié)合使用
 

  讓我們創(chuàng)建一個IMDB分數(shù)的直方圖,以檢查IMDB分數(shù)在所有電影中的分布。直方圖是可視化數(shù)據(jù)集分布的好方法。我們使用plot電影讓我們創(chuàng)建一個IMDB分數(shù)的直方圖,以檢查IMDB分數(shù)在所有電影中的分布。直方圖是可視化數(shù)據(jù)集分布的好方法。我們使用plot電影數(shù)據(jù)幀中IMDB Scores系列的方法,并將其傳遞給參數(shù)。數(shù)據(jù)幀中IMDB Scores系列的方法,并將其傳遞給參數(shù)。

如何將Excel和Python和Pandas結(jié)合使用
 

  此數(shù)據(jù)可視化表明,大多數(shù)IMDB分數(shù)介于6到8之間。
 

  獲取有關(guān)數(shù)據(jù)的統(tǒng)計信息
 

  Pandas有一些非常方便的方法來查看有關(guān)我們數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)。例如,我們可以使用該describe方法來獲取數(shù)據(jù)集的統(tǒng)計摘要。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  該describe方法為每個列顯示以下信息。
 

  1)值的數(shù)量或數(shù)量

  2)意思

  3)標準偏差

  4)最小,最大

  5)25%,50%和75%的分位數(shù)
 

  請注意,此信息僅針對數(shù)字值進行計算。
 

  我們還可以使用相應(yīng)的方法一次訪問此信息。例如,要獲取特定列的均值,可以使用該mean列上的方法。

如何將Excel和Python和Pandas結(jié)合使用
 

  就像平均值一樣,我們要訪問的每種統(tǒng)計信息都有可用的方法。您可以在我們的免費Pandas備忘單上閱讀有關(guān)這些方法的信息。
 

  讀取沒有標題的文件并跳過記錄
 

  在如何將Excel和Python和Pandas結(jié)合使用的前面,我們看到了一些方法來讀取一種特殊的Excel文件,該文件具有標題并且沒有需要跳過的行。有時,Excel工作表沒有任何標題行。對于此類情況,您可以告訴Pandas不要將第一行視為標題或列名。并且,如果Excel工作表的前幾行包含不應(yīng)讀取的數(shù)據(jù),則可以要求該read_excel方法從頂部開始跳過一定數(shù)量的行。
 

  例如,查看此Excel文件的前幾行。

如何將Excel和Python和Pandas結(jié)合使用
 

  該文件顯然沒有標題,并且前四行不是實際記錄,因此不應(yīng)讀入。通過將參數(shù)設(shè)置header為None,可以告訴read_excel沒有標題,并且可以通過將參數(shù)設(shè)置skiprows為4來跳過前四行。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  我們從工作表中跳過了四行,沒有任何行用作標題。另外,請注意,可以在一個read語句中組合不同的選項。要跳過工作表底部的行,可以使用option skip_footer,它的作用與一樣skiprows,唯一的區(qū)別是行是從底部向上計數(shù)的。
 

  前一個DataFrame中的列名稱是數(shù)字,并且由Pandas默認分配。通過columns在DataFrame上調(diào)用方法并將列名作為列表傳遞,我們可以將列名重命名為描述性名稱。

如何將Excel和Python和Pandas結(jié)合使用

 

  現(xiàn)在,我們已經(jīng)了解了如何從Excel文件讀取行的子集,我們可以學習如何讀取列的子集。
 

  讀取列的子集
 

  盡管read_excel默認為讀取和導(dǎo)入所有列,但是您可以選擇僅導(dǎo)入某些列。通過傳遞parse_cols = 6,我們告訴該read_excel方法僅讀取第一列,直到索引為六或前七個列(第一列的索引為零)。

如何將Excel和Python和Pandas結(jié)合使用
 

  或者,您可以傳入一個數(shù)字列表,這將使您可以導(dǎo)入特定索引處的列。
 

  在列上應(yīng)用公式
 

  Excel的常用功能之一是應(yīng)用公式從現(xiàn)有列值創(chuàng)建新列。在我們的Excel文件中,我們有“總收入”和“預(yù)算”列。我們可以通過從總收入中減去預(yù)算來獲得凈收入。然后,我們可以將此公式在Excel文件中應(yīng)用于所有行。我們也可以在Pandas中做到這一點,如下所示。

如何將Excel和Python和Pandas結(jié)合使用
 

  上面,我們使用Pandas創(chuàng)建了一個名為“凈收入”的新列,并在其中填充了“總收入”和“預(yù)算”的差額。值得注意的是,Excel和Pandas在公式處理方式上的區(qū)別。在Excel中,公式存在于單元格中,并在數(shù)據(jù)更改時更新-使用Python,會進行計算并存儲值-如果手動更改了一部電影的總收入,則不會更新凈收入。
 

  讓我們使用該sot_values方法按照創(chuàng)建的新列對數(shù)據(jù)進行排序,并按“凈收入”顯示前十部電影。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  Pandas數(shù)據(jù)透視表
 

  高級Excel用戶還經(jīng)常使用數(shù)據(jù)透視表。數(shù)據(jù)透視表通過將數(shù)據(jù)分組到索引上并應(yīng)用諸如排序,求和或求平均之類的操作來匯總另一個表的數(shù)據(jù)。您也可以在Pandas中使用此功能。
 

  我們需要首先確定將用作索引的一列或多列,以及將在其上應(yīng)用匯總公式的列。讓我們從小處開始,選擇Year作為索引列,選擇Gross Earnings作為匯總列,然后從該數(shù)據(jù)創(chuàng)建一個單獨的DataFrame。
 

如何將Excel和Python和Pandas結(jié)合使用
 

  現(xiàn)在pivot_table,我們調(diào)用該數(shù)據(jù)子集。該方法pivot_table帶有一個參數(shù)index。如前所述,我們要使用Year作為索引。
 

如何將Excel和Python和Pandas結(jié)合使用
 

  這為我們提供了一個樞紐分析表,其中按年份分組并匯總了總收入。注意,我們不需要明確指定“總收入”列,因為Pandas會自動將其標識為應(yīng)應(yīng)用匯總的值。
 

  我們可以使用該數(shù)據(jù)透視表創(chuàng)建一些數(shù)據(jù)可視化。我們可以plot在DataFrame上調(diào)用該方法以創(chuàng)建線圖,并調(diào)用該show方法以在筆記本中顯示該圖。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們看到了如何以單個列作為索引進行數(shù)據(jù)透視。如果我們可以使用多列,事情將會變得更加有趣。讓我們創(chuàng)建另一個DataFrame子集,但是這次我們將選擇“國家/地區(qū)”,“語言”和“總收入”列。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們將使用“國家”和“語言”列作為數(shù)據(jù)透視表的索引。我們將使用毛收入作為匯總表,但是,我們不需要像前面看到的那樣明確地指定它。

如何將Excel和Python和Pandas結(jié)合使用
 

  讓我們用條形圖可視化此數(shù)據(jù)透視表。由于此數(shù)據(jù)透視表中仍然有幾百條記錄,因此我們將只繪制其中的幾條。

如何將Excel和Python和Pandas結(jié)合使用
 

  將結(jié)果導(dǎo)出到Excel
 

  如果您要與使用Excel的同事一起工作,則將Excel文件保存在Pandas之外非常重要。您可以使用pandasto_excel方法將pandas DataFrame導(dǎo)出或?qū)懭隕xcel文件。Pandasxlwt內(nèi)部使用Python模塊來寫入Excel文件。該to_excel方法在我們要導(dǎo)出的DataFrame上調(diào)用,我們還需要傳遞一個將寫入此DataFrame的文件名。

如何將Excel和Python和Pandas結(jié)合使用
 

  默認情況下,索引也保存到輸出文件中。但是,有時索引不提供任何有用的信息。例如,moviesDataFrame具有數(shù)字自動增量索引,該索引不是原始Excel數(shù)據(jù)的一部分。

如何將Excel和Python和Pandas結(jié)合使用
如何將Excel和Python和Pandas結(jié)合使用
 

  您可以通過傳遞index-False來選擇跳過索引。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們需要能夠使輸出文件看起來更好,然后才能將其發(fā)送給我們的同事。我們可以將pandasExcelWriter類與XlsxWriterPython模塊一起使用以應(yīng)用格式。
 

  我們可以通過創(chuàng)建一個ExcelWriter對象來使用這些高級輸出選項,并使用該對象寫入EXcel文件。

如何將Excel和Python和Pandas結(jié)合使用
 

  我們可以通過調(diào)用add_format要寫入的工作簿來應(yīng)用自定義項。在這里,我們將標題格式設(shè)置為粗體。

如何將Excel和Python和Pandas結(jié)合使用
 

  最后,我們通過save在writer對象上調(diào)用方法來保存輸出文件。

如何將Excel和Python和Pandas結(jié)合使用
 

  例如,我們保存的數(shù)據(jù)的列標題設(shè)置為粗體。保存的文件如下圖所示。
 

  這樣,可以XlsxWriter將各種格式應(yīng)用于輸出的Excel文件。

如何將Excel和Python和Pandas結(jié)合使用
 

  結(jié)論
 

  Pandas不能替代Excel。兩種工具在數(shù)據(jù)分析工作流程中都有自己的位置,并且可以成為非常出色的輔助工具。正如我們所展示的,Pandas可以執(zhí)行許多復(fù)雜的數(shù)據(jù)分析和操作,這取決于您的需要和專業(yè)知識,可能超出僅使用Excel所能實現(xiàn)的范圍。在Excel上使用Python和Pandas的主要好處之一是,它可以通過編寫腳本并與自動化數(shù)據(jù)工作流程集成來幫助您自動化Excel文件處理。Pandas還具有從Excel文件讀取各種數(shù)據(jù)的出色方法。如果您的目標受眾更喜歡將結(jié)果從Pandas導(dǎo)出回Excel,則也可以。
 

  另一方面,Excel是一個如此廣泛使用的數(shù)據(jù)工具,忽略它不是一個明智的選擇。掌握Pandas和Excel方面的專業(yè)知識并使其協(xié)同工作,可以為您提供技能,幫助您在組織中脫穎而出。



 

預(yù)約申請免費試聽課

填寫下面表單即可預(yù)約申請免費試聽!怕錢不夠?可先就業(yè)掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業(yè)?一地學習,可推薦就業(yè)!

?2007-2021/北京漫動者教育科技有限公司版權(quán)所有
備案號:京ICP備12034770號

?2007-2022/ lb577.com 北京漫動者數(shù)字科技有限公司 備案號: 京ICP備12034770號 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號

網(wǎng)站地圖