在Excel或Python如何執(zhí)行大數(shù)據(jù)分析任務(wù)文章中,我們將通過研究如何在兩個(gè)平臺(tái)上執(zhí)行基本分析任務(wù)來比較Excel和Python。
Excel是世界上最常用的數(shù)據(jù)分析軟件。為什么?一旦掌握了它,就很容易掌握并具有強(qiáng)大的功能。相比之下,Python的聲譽(yù)在于它更難使用,盡管一旦您了解到它幾乎是無限的,就可以使用它。
但是,這兩個(gè)數(shù)據(jù)分析工具實(shí)際上如何比較?他們的聲譽(yù)并不能真正反映現(xiàn)實(shí)。在本教程中,我們將研究一些常見的數(shù)據(jù)分析任務(wù),以演示Python數(shù)據(jù)分析的可訪問性。
本教程假定您具有Excel的中級(jí)知識(shí),包括使用公式和數(shù)據(jù)透視表。
我們將使用Python庫pandas,該旨在幫助Python中的數(shù)據(jù)分析,但是本教程不需要任何Python或pandas知識(shí)。
為什么要使用Python vs Excel?
在開始之前,您可能想知道為什么Python甚至值得考慮。您為什么不能只繼續(xù)使用Excel?
盡管Excel很棒,但是在某些領(lǐng)域中,某些類型的數(shù)據(jù)分析可以使像Python這樣的編程語言更好。這是來自我們的帖子的一些原因:Excel用戶應(yīng)考慮學(xué)習(xí)編程的9個(gè)理由:
a.您幾乎可以讀取和處理任何類型的數(shù)據(jù)。
b.自動(dòng)化和重復(fù)性的任務(wù)更加容易。
c.處理大型數(shù)據(jù)集非常重要更快,更容易。
d.其他人可以更輕松地復(fù)制和審核您的工作。
e.查找和修復(fù)錯(cuò)誤更容易。
f.Python是開放源代碼,因此您可以查看所使用的庫背后的內(nèi)容。
g.先進(jìn)的統(tǒng)計(jì)和機(jī)器學(xué)習(xí)功能。
h.先進(jìn)的數(shù)據(jù)可視化功能。
i.跨平臺(tái)穩(wěn)定性-您的分析可以在任何計(jì)算機(jī)上運(yùn)行。
需要明確的是,我們不主張將Excel拋在后面-這是一個(gè)功能強(qiáng)大的工具,用途廣泛!但是,作為Excel用戶,也可以利用Python的功能可以節(jié)省您的時(shí)間,并開拓職業(yè)發(fā)展機(jī)會(huì)。
值得記住的是,這兩個(gè)工具可以協(xié)同工作,并且您可能會(huì)發(fā)現(xiàn)某些任務(wù)最好留在Excel中,而另一些則可以從Python提供的功能,靈活性和透明性中受益。
導(dǎo)入我們的數(shù)據(jù)
首先,讓我們熟悉本教程要使用的數(shù)據(jù)。我們將使用有關(guān)銷售人員的虛構(gòu)數(shù)據(jù)。這是我們的數(shù)據(jù)在Excel中的樣子:
我們的數(shù)據(jù)保存為名為的CSV文件sales.csv。為了將數(shù)據(jù)導(dǎo)入熊貓,我們需要先導(dǎo)入熊貓庫本身。
上面的代碼導(dǎo)入pandas并將其作為語法的別名pd。這聽上去很復(fù)雜,但這實(shí)際上只是一種昵稱-這意味著在將來我們可以pd用來指代pandas這樣我們就不必每次都鍵入完整的單詞。
要閱讀我們的文件,我們使用pd.read_csv():
我們將結(jié)果分配給了pd.read_csv()一個(gè)名為的變量sales,該變量將用于引用我們的數(shù)據(jù)。我們還在代碼的最后一行中單獨(dú)放置了變量名,該變量名將數(shù)據(jù)打印在格式良好的表中。
立即,我們可以注意到熊貓表示數(shù)據(jù)與在Excel中看到的數(shù)據(jù)之間存在一些差異:
a.在熊貓中,行號(hào)從0到1在Excel中開始。
b.大熊貓中的列名稱取自數(shù)據(jù),而Excel中的列使用字母標(biāo)記。
c.在原始數(shù)據(jù)中缺少值的地方,pandas具有占位符NaN,指示該值丟失,或者為null。
d.銷售數(shù)據(jù)的每個(gè)值都有一個(gè)小數(shù)點(diǎn),因?yàn)樾茇埓鎯?chǔ)的數(shù)值包含null(NaN)作為稱為float的數(shù)值類型(這對(duì)我們沒有任何影響,但我們只想解釋為什么)。
在學(xué)習(xí)第一個(gè)熊貓操作之前,我們將快速學(xué)習(xí)一些有關(guān)如何存儲(chǔ)數(shù)據(jù)的知識(shí)。
讓我們使用type()函數(shù)查看sales變量的類型:
此輸出告訴我們sales變量是一個(gè)DataFrame對(duì)象,這是熊貓中特定類型的對(duì)象。在熊貓中,大多數(shù)時(shí)候我們想要修改數(shù)據(jù)框時(shí),都會(huì)使用一種稱為數(shù)據(jù)框方法的特殊語法,該語法使我們能夠訪問與數(shù)據(jù)框?qū)ο笙嚓P(guān)的特定功能。當(dāng)我們?cè)谛茇堉型瓿傻谝粋€(gè)任務(wù)時(shí),我們將看到一個(gè)例子!
排序數(shù)據(jù)
讓我們學(xué)習(xí)如何在Excel和Python中對(duì)數(shù)據(jù)進(jìn)行排序。目前,我們的數(shù)據(jù)尚未排序。在Excel中,如果我們想按"Start Date"列對(duì)數(shù)據(jù)進(jìn)行排序,我們將:
選擇我們的數(shù)據(jù)。
單擊工具欄上的“排序”按鈕。
在打開的對(duì)話框中選擇“開始日期”。
在大熊貓中,我們使用該DataFrame.sort_values()方法。剛才我們簡(jiǎn)要提到了方法。為了使用它們,我們必須替換DataFrame為我們要對(duì)該方法應(yīng)用的數(shù)據(jù)框的名稱-在這種情況下sales。如果您使用過Python中的列表,那么您會(huì)熟悉該list.append()方法中的這種模式。
我們?yōu)榉椒ㄌ峁┝忻?,以告訴該列按其排序:
我們數(shù)據(jù)框中的值已經(jīng)用一行簡(jiǎn)單的熊貓代碼進(jìn)行了排序!
總結(jié)銷售價(jià)值
我們數(shù)據(jù)的最后三列包含一年前三個(gè)月(稱為第一季度)的銷售價(jià)值。我們的下一個(gè)任務(wù)是將Excel和Python中的這些值相加。
讓我們開始看看如何在Excel中實(shí)現(xiàn)此目標(biāo):
a."Sales Q1"在單元格中輸入新的列名H1。
b.在單元格H2中,使用 SUM()公式并使用其坐標(biāo)指定單元格的范圍。
c.將公式向下拖動(dòng)到所有行。
在熊貓中,當(dāng)我們執(zhí)行操作時(shí),它將自動(dòng)自動(dòng)將其應(yīng)用于每一行。我們將通過在列表中使用它們的名稱來選擇三列:
接下來,我們將使用DataFrame.sum()方法并指定axis=1,它告訴熊貓我們要對(duì)行求和而不是對(duì)列求和。我們將通過在方括號(hào)內(nèi)提供新的列名稱來指定它:
在熊貓中,我們使用的“公式”不會(huì)存儲(chǔ)。而是將結(jié)果值直接添加到我們的數(shù)據(jù)框中。如果我們想對(duì)新列中的值進(jìn)行調(diào)整,則需要編寫新代碼來完成。
加入經(jīng)理數(shù)據(jù)
在我們的電子表格中,我們還有一小段數(shù)據(jù)表,說明誰管理每個(gè)團(tuán)隊(duì):
讓我們看看如何"Manager"在Excel和Python 的列中將這些數(shù)據(jù)聯(lián)接起來。在Excel中,我們:
a.首先將列名稱添加到cell中I1。
b.使用VLOOKUP()cell中的公式I2,指定:
從單元格B2(部門) 查找值
在選擇經(jīng)理數(shù)據(jù)時(shí),我們使用坐標(biāo)指定
并且我們想要從該數(shù)據(jù)的第二列中選擇值。
c.單擊并將公式向下拖動(dòng)到所有單元格。
要在熊貓中使用此數(shù)據(jù),首先,我們需要從第二個(gè)CSV導(dǎo)入它managers.csv:
為了將maangers數(shù)據(jù)連接到sales使用熊貓,我們將使用pandas.merge()函數(shù)。我們按順序提供以下參數(shù):
a.sales:我們要合并的第一個(gè)或左側(cè)數(shù)據(jù)框的名稱
b.managers:我們要合并的第二個(gè)或正確數(shù)據(jù)框的名稱
c.how='left':我們要用于聯(lián)接數(shù)據(jù)的方法。在left加入指定,無論什么時(shí)候,我們希望將所有的行從我們的左(第一)數(shù)據(jù)幀。
d.on='Department':我們將要加入的兩個(gè)數(shù)據(jù)框中的列名。
如果乍一看這有點(diǎn)令人困惑,那就可以了。在Python中用于聯(lián)接數(shù)據(jù)的模型與Excel中所使用的模型不同,但它的功能也強(qiáng)大得多。請(qǐng)注意,在Python中,我們可以精確地指定使用清晰的語法和列名如何連接數(shù)據(jù)。
添加條件列
如果我們看一下 "End Date"專欄,我們可以看到并非所有員工仍在公司工作-缺少價(jià)值的員工仍然受雇,而其余員工則離開了。我們的下一個(gè)任務(wù)是創(chuàng)建一個(gè)列,該列告訴我們每個(gè)銷售人員是否是當(dāng)前員工。我們將在Excel和Python中執(zhí)行此操作。
從Excel開始,要添加此列,我們:
a.向cell添加一個(gè)新的列名J1。
b.使用IF()公式來檢查電池D1(終止日期)為空,如果是填充J2用TRUE,否則FALSE。
c.將公式向下拖動(dòng)到下面的單元格。
在熊貓中,我們使用該pandas.isnull()函數(shù)檢查"End Date"列中的空值,并將結(jié)果分配給新列:
數(shù)據(jù)透視表
樞紐分析表是Excel最強(qiáng)大的功能之一,它可以方便地使用聚合進(jìn)行數(shù)據(jù)分析。我們將研究Excel和Python中的兩個(gè)不同的數(shù)據(jù)透視表應(yīng)用程序。
我們將從Excel中的數(shù)據(jù)透視表開始,該數(shù)據(jù)表計(jì)算每個(gè)部門的員工人數(shù):
這種操作(計(jì)算值在列中出現(xiàn)的次數(shù))非常普遍,以至于它在熊貓中有自己的語法:Series.value_counts()。
系列類型是本教程的新增內(nèi)容,但與我們已經(jīng)了解的DataFrame非常相似。系列只是單個(gè)行或列的熊貓表示。
讓我們使用pandas方法來計(jì)算每個(gè)部門的員工人數(shù):
第二個(gè)數(shù)據(jù)透視表示例也按部門進(jìn)行匯總,而是計(jì)算第一季度的平均銷售額:
為了以大熊貓計(jì)算,我們將使用DataFrame.pivot_table()方法。我們需要指定一些參數(shù):
a.index:匯總依據(jù)的列。
b.values:我們要使用其值的列。
c.aggfunc:我們要使用的聚合函數(shù),在這種情況下為'mean'平均值。
Excel vs Python:摘要
在本教程中,我們學(xué)習(xí)了以下Excel功能的Python等效項(xiàng):
a.排序數(shù)據(jù)
b.SUM()
c.VLOOKUP()
d.IF()
e.數(shù)據(jù)透視表
對(duì)于我們研究的每個(gè)示例,pandas語法的復(fù)雜度與您在Excel中使用的公式或菜單選項(xiàng)的復(fù)雜度相似。但是Python具有一些優(yōu)點(diǎn),例如更快地處理大型數(shù)據(jù)集,更多的自定義和復(fù)雜性,以及提高錯(cuò)誤檢查和審計(jì)的透明度(因?yàn)槟龅囊磺卸济鞔_地放置在代碼中,而不是隱藏在單元中)。
精通Excel的人不僅僅具有跨越Python的能力。從長(zhǎng)遠(yuǎn)來看,將Python技能添加到您的技能中將使您成為一個(gè)更快,更強(qiáng)大的分析師,并且您將發(fā)現(xiàn)可以利用Excel和Python進(jìn)行工作的新工作流程,比單獨(dú)使用Excel可以進(jìn)行更高效,更強(qiáng)大的數(shù)據(jù)分析。
如果您想學(xué)習(xí)如何在Python中分析數(shù)據(jù),我們的Python 數(shù)據(jù)分析器路徑旨在教您所有需要了解的內(nèi)容,即使您以前從未編寫過代碼。在開始學(xué)習(xí)我們?cè)诒窘坛讨惺褂眠^的pandas庫之前,您將從兩門課程開始,它們將教您Python的基礎(chǔ)知識(shí)。
填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!
?2007-2022/ m.5wd995.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc