<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度解析:會用Excel,還有必要學(xué)Python嗎?

          共 5101字,需瀏覽 11分鐘

           ·

          2021-11-26 14:53

          在看到知乎上有個問題:

          我都會用Excel了,還有必要學(xué)Python嗎?

          這個問題大概率可以說明問這個問題的這位同學(xué)目前還沒有遇到非Python不可的場景,之所以產(chǎn)生了學(xué)Python的念頭是因?yàn)檫@兩年P(guān)ython實(shí)在是太火了,如果自己不學(xué)總覺得差點(diǎn)什么。但是學(xué)了一點(diǎn)以后又發(fā)現(xiàn)Python做的那些事情,我Excel也可以做,既然如此,我為什么還要費(fèi)這么大勁去學(xué)Python呢?

          為什么要學(xué)Python

          大家在學(xué)一個工具或者一項(xiàng)知識的時候,一定不要為了學(xué)而學(xué),這樣不僅學(xué)起來很痛苦,而且很難堅持下去的。

          那既然如此,是不是我們就可以不學(xué)Python了?不是的,你想想為什么現(xiàn)在幾乎所有的招聘要求上都會要求掌握Python技能?

          原因主要有兩個:

          1、有些事情雖然Excel也能做,但是用Python效率會更高 

          2、有些事情是只有Python可以做,而Excel是做不了的

          綜合這兩個原因,就要求你必須掌握Python技能,雖然不一定100%的工作都用Python,但是不得不用Python的時候你得會。

          Excel和Python在不同場景下的異同

          接下來我們就圍繞一名數(shù)據(jù)從業(yè)者在工作中可能會涉及到的工作內(nèi)容進(jìn)行展開,看看不同工作內(nèi)容下,Excel和Python的異同。主要從以下幾方面進(jìn)行展開:

          • 數(shù)據(jù)處理與運(yùn)算
          • 報表自動化
          • 圖表可視化
          • 統(tǒng)計檢驗(yàn)
          • 機(jī)器學(xué)習(xí)算法

          數(shù)據(jù)處理與運(yùn)算

          數(shù)據(jù)處理與運(yùn)算這部分工作是我們工作中的大頭,我們先來看下關(guān)于數(shù)據(jù)處理與運(yùn)算中比較高頻的一些內(nèi)容:

          學(xué)過Excel的同學(xué)對這些應(yīng)該都不陌生,這些內(nèi)容在Excel是完全可以實(shí)現(xiàn),在Python中也是可以實(shí)現(xiàn)的,那我們應(yīng)該如何選呢?

          原則就是哪個方便用哪個,如果你現(xiàn)在只有100行數(shù)據(jù),你現(xiàn)在要對這100行數(shù)據(jù)進(jìn)行降序排列,這個時候肯定用Excel效率更高,你用Python的話還需要先把數(shù)據(jù)導(dǎo)入到Python中以后再做處理,相對來說更麻煩一些。

          但如果你的數(shù)據(jù)條數(shù)超過10萬行,你試著用Excel執(zhí)行一下刪除重復(fù)值的操作,幾乎會瞬間無響應(yīng),然后Excel就閃退了,很多人又沒有及時保存文件的習(xí)慣,閃退會導(dǎo)致之前做的工作白做了。如果你用Python的話,首先Python處理幾十萬條數(shù)據(jù)的時候,速度還是可以的,即使速度慢一點(diǎn),大多數(shù)時候是不會出現(xiàn)軟件閃退的,而且即使閃退了,之前的代碼是有的,只需要把之前的代碼重新運(yùn)行一遍就好了,不需要重頭再做

          如果你的數(shù)據(jù)超過100萬行,那么就只能用Python了,因?yàn)镋xcel的最大行數(shù)為1048576行。

          需要聲明的是,不管是Excel還是Python,數(shù)據(jù)處理速度會跟電腦自身的性能有很大關(guān)系。

          綜上,如果你平常接觸的數(shù)據(jù)都是10萬以內(nèi)的小數(shù)量級,那么其實(shí)是可以不學(xué)Python的,但如果需要經(jīng)常處理大數(shù)量級的數(shù)據(jù),還是有必要學(xué)一學(xué)Python的。

          報表自動化

          報表是作為一個數(shù)據(jù)從業(yè)者不得不做的一件事,常見的報表就是日報、周報、月報這些,這些報表有一個好處就是格式比較固定,只有固定的內(nèi)容我們就可以進(jìn)行自動化。而所謂的自動化就是讓機(jī)器代替人工做事情的過程。

          下圖是我列的常規(guī)報表自動化的流程,主要分為5個步驟,核心在于前兩個步驟,先對整個報表制作流程進(jìn)行拆解,拆解成若干個小的步驟,然后再找每個步驟對應(yīng)的代碼是什么,最后把小步驟的代碼合并起來就是整個報表制作的代碼,我們每次只需要把寫好的代碼運(yùn)行一遍,結(jié)果就自動出來了,也就達(dá)到了報表自動化的目的。

          運(yùn)行效率:

          在代碼這一塊我們既可以用Excel中的VBA,也可以用Python。那我們應(yīng)該如何選呢?首先看效率問題,有個博主專門測試過Python和VBA逐行讀取同一個文件,Python耗時0.639秒,VBA耗時2.855秒,兩者相差4.x多倍。

          博文鏈接:

          https://www.cnblogs.com/metree/p/3477351.html

          書寫效率:

          除了執(zhí)行效率方面以外,還有就是代碼書寫效率,下面截圖是從網(wǎng)上找的一個關(guān)于讀取txt文件的VBA代碼:

          文檔鏈接:

          https://blog.csdn.net/weixin_42578747/article/details/90111536

          下面是用Python讀取txt文件時的代碼:

          import pandas as pd
          pd.read_table('file_name.txt')

          是不是明顯Python的代碼要更簡潔,而且更容易理解,read_table就是讀取文件,多直觀。

          綜上,如果是平常有大量工作需要自動化的話,也還是有必要學(xué)習(xí)Python的。

          圖表可視化

          效率方面:

          圖表可視化也是我們?nèi)粘9ぷ髦斜容^使用比較高頻一部分,圖表除了傳遞信息以外,還要盡可能的美觀,讓看表的人視覺體驗(yàn)更好。

          下圖中左半圖時Excel默認(rèn)的折線圖樣式,右半圖時Python中Seaborn庫中默認(rèn)的折線圖樣式,很明顯右圖要比左圖觀看體驗(yàn)上更好一些。

          雖然Excel圖表在進(jìn)行專門的樣式設(shè)置以后也能達(dá)到比較好看的效果,但是進(jìn)行樣式設(shè)置很耗費(fèi)時間的,我們還是希望用更少的時間得到稍微不那么丑的圖表。

          再比如繪制統(tǒng)計學(xué)中的核密度圖,雖然Excel中也可以通過復(fù)雜的操作實(shí)現(xiàn),但是Python中只需要如下一行代碼就可以繪制出比較好看的核密度圖:

          sns.displot(penguins, x="flipper_length_mm", hue="species", kind="kde", multiple="stack")

          圖表全面性:

          上面是看了Excel和Python的在效率方面的差異,接下來我們看下在圖表全面性方面兩者的差別。

          折線圖、柱狀圖是比較常見的一些圖表,除了這些比較常規(guī)的圖表以外,我們有的時候我們還會去繪制一些比較專業(yè)圖表,比如小提琴圖,在Excel里面就不太好去實(shí)現(xiàn),而在Python里面也只需要如下一行代碼就可以輕松實(shí)現(xiàn):

          sns.catplot(x="day", y="total_bill", hue="sex",
                      kind="violin", split=True, data=tips)

          在圖表可視化方面,Python中有很多的庫可以供我們使用,下面是一些比較常用的庫的官網(wǎng),我們只需要根據(jù)具體場景選擇適合自己的就好了。

          matplotlib官網(wǎng):https://matplotlib.org/ 

          pyecharts官網(wǎng):https://pyecharts.org/#/ 

          seaborn官網(wǎng):https://seaborn.pydata.org/index.html

          plotly官網(wǎng):https://chart-studio.plotly.com/feed/#/ 

          Boken官網(wǎng):https://docs.bokeh.org/en/latest/

          綜上,如果平常工作中對圖表的視覺體驗(yàn)沒太多要求,而且也涉及到一些高級的統(tǒng)計圖表的話,Excel就用了。如果要是對效率和圖表的全面性都有要求的話,還是有必要學(xué)Python的。

          統(tǒng)計學(xué)檢驗(yàn)

          我們在平常工作中會做很多AB測試,而AB測試的核心就是背后的統(tǒng)計學(xué)檢驗(yàn),我們看下Excel和Python在統(tǒng)計檢驗(yàn)方面有啥區(qū)別。

          統(tǒng)計檢驗(yàn)中比較基礎(chǔ)的檢驗(yàn)就是T檢驗(yàn)。

          在Excel中進(jìn)行T檢驗(yàn)時,使用的TTEST()函數(shù),在該函數(shù)中指明要檢驗(yàn)的兩組數(shù)據(jù)核檢驗(yàn)分布即可,也比較簡單:

          在Python中進(jìn)行T檢驗(yàn)時,使用的代碼如下:

          stats.ttest_ind(treat_data, control_data)

          從簡單的T檢驗(yàn)來看的話,兩者基本沒啥差別。

          稍微高級一點(diǎn)的就是多重檢驗(yàn),就是用來檢驗(yàn)多組內(nèi)任意兩組之間的差異情況,此時如果在Excel中需要用到人工進(jìn)行兩兩比較,而在Python中只需要下面一行代碼即可得出兩兩之間的檢驗(yàn)結(jié)果。

          MultiComparison(data, groups)

          綜上,一些簡單的檢驗(yàn)的話,Excel和Python是沒啥區(qū)別的,而一些稍微復(fù)雜的檢驗(yàn)的話,Python里面都會把復(fù)雜的步驟封裝好,使用起來會更方便。

          機(jī)器學(xué)習(xí)算法

          作為一名數(shù)據(jù)分析師,雖然日常工作中的主要工作不是做算法,但是還是需要對一些常見算法的原理和實(shí)現(xiàn)是了解的。

          機(jī)器學(xué)習(xí)領(lǐng)域比較知名的庫就是Sklearn,用這個庫可以讓你很輕松的就能夠?qū)崿F(xiàn)一個機(jī)器學(xué)習(xí)算法。

          算法里面最基礎(chǔ)的就是線性回歸了,運(yùn)行如下代碼就可以求取出線性回歸的各項(xiàng)系數(shù):

          from sklearn import linear_model
          reg = linear_model.LinearRegression()
          reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
          reg.coef_

          Sklearn庫中不僅包含了常見的分類和回歸算法,還包含了特征工程等部分,讓你輕松掌握機(jī)器學(xué)習(xí)。

          Sklearn官網(wǎng):https://scikit-learn.org/stable/index.html

          而Excel中是沒有這種條件的。

          上面從各個方面介紹了在不同場景下Excel和Python的異同,相信大家對于自己到底要不要學(xué)Python應(yīng)該比較清楚了。那如果想學(xué),我們應(yīng)該怎么學(xué)呢?

          怎么學(xué)

          學(xué)習(xí)Python首先要明白兩句核心內(nèi)容,只要真正理解了這兩句話,那你學(xué)起來會很快的:

          1、不管Excel還是Python,這些都是實(shí)現(xiàn)工具而已,背后的理論原理是都一樣的;2、常用的功能大概占全部功能的20%,剛開始學(xué),要抓主要矛盾,學(xué)主要內(nèi)容,等把主要內(nèi)容學(xué)會以后,再學(xué)次要內(nèi)容就容易很多了。

          對比學(xué)習(xí)法

          Excel中的數(shù)據(jù)透視表大家應(yīng)該都比較熟悉,核心就是下面這四個框,只需要把不同的字段拖到對應(yīng)的框里面就行。

          如果現(xiàn)在我讓你用Python對一個數(shù)據(jù)表做一個數(shù)據(jù)透視表,你肯定會一臉懵,Excel中都是鼠標(biāo)拖拽的,Python要怎么實(shí)現(xiàn)呢?

          其實(shí)也簡單,在Python中做數(shù)據(jù)透視表需要用到pivot_table()函數(shù),該函數(shù)的關(guān)鍵參數(shù)如下:

          pd.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean')

          看到這里應(yīng)該還不太明白,我們再往下看:

          看到這張圖是不是就差不多理解了,不同的參數(shù)其實(shí)就代表Excel中不同的框,在Excel中是用鼠標(biāo)把字段拖到框里面,在Python中是將字段名賦值給相應(yīng)的參數(shù)。

          pivot_table()函數(shù)中的data參數(shù)表示要做數(shù)據(jù)透視表的整個表,aggfunc表示對values的進(jìn)行什么樣的運(yùn)算。

          數(shù)據(jù)透視表不是Excel所獨(dú)有的,在不同工具里面的實(shí)現(xiàn)邏輯是一樣的,只不過具體的實(shí)現(xiàn)方式會不一樣,但是只要我們把背后的邏輯掌握了,然后借助于我們現(xiàn)有的、比較熟悉的Excel去學(xué)習(xí)和理解Python的實(shí)現(xiàn)方式,這樣學(xué)起來就會輕松很多。

          其實(shí)不僅是透視表這個案例,我們所用到的很多知識都是可以按照這種思路去學(xué)習(xí)的,我們把這種學(xué)習(xí)方法稱為對比學(xué)習(xí)法

          我的《對比Excel》系列三本書:《對比Excel,輕松學(xué)習(xí)Python數(shù)據(jù)分析》、《對比Excel,輕松學(xué)習(xí)SQL數(shù)據(jù)分析》、《對比Excel,輕松學(xué)習(xí)Python報表自動化》均是采用了這種思想進(jìn)行寫作的。

          先解決主要矛盾

          很多Python的書和課程會追求大而全,會講很多又難但又使用頻率不那么高的知識點(diǎn),比如面向?qū)ο缶幊蹋芏鄬W(xué)了幾年的人也沒學(xué)會,新手一學(xué)更是懵逼。這些知識點(diǎn)會把很多新人勸退的,真正的做到了從入門到放棄。

          我們在剛開始學(xué)的時候,盡量去學(xué)那些主要的知識點(diǎn),學(xué)完之后馬上逼自己把學(xué)到的應(yīng)用到實(shí)際工作中,當(dāng)你看到學(xué)有所用的時候,大腦會形成正向反饋,越學(xué)越有勁,很快就學(xué)會了。

          點(diǎn)擊下方卡片進(jìn)行關(guān)注,獲取更多內(nèi)容
          點(diǎn)分享
          點(diǎn)收藏
          點(diǎn)點(diǎn)贊
          點(diǎn)在看
          瀏覽 65
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人免费在线视频 | 99大香蕉网 | 欧美日韩黄 | 国产小说一区二区三区国产 | 日韩少妇内射 |