日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

手把手教你做一個(gè)“渣”數(shù)據(jù)師,用Python代替老情人Excel

 板橋胡同37號 2019-09-07

大數(shù)據(jù)文摘出品

來源:medium

編譯:張大筆茹

十年前,你說你是做數(shù)據(jù)的,大家的反應(yīng)就是——用Excel做做表。

現(xiàn)在,要成為一個(gè)合格的數(shù)據(jù)分析師,你說你不會Python,大概率會被江湖人士恥笑。

Medium上一位博主就分享了他一步步用Python替換掉十年前的“老情人”Excel的過程,一起來學(xué)習(xí)一下吧!

在Excel成為我的“初戀”十年之后,是時(shí)候找一個(gè)更好的“另一半”了,在這個(gè)技術(shù)日新月異的時(shí)代,更好更薄更輕更快處理數(shù)據(jù)的選擇就在身邊!我希望用Python取代幾乎所有的excel功能,無論是簡單的篩選還是相對復(fù)雜的創(chuàng)建并分析數(shù)據(jù)和數(shù)組。
我將展示從簡單到復(fù)雜的計(jì)算任務(wù)。強(qiáng)烈建議你跟著我一起做這些步驟,以便更好地理解它們。
擬寫此文的靈感來自于人人可訪問的免費(fèi)教程網(wǎng)站,我曾認(rèn)真閱讀并一直嚴(yán)格遵守這篇Python文檔,鏈接如下,相信你也會從該網(wǎng)站中找到很多干貨。
GitHub鏈接:
https://github.com/ank0409/Ditching-Excel-for-Python

一、將excel文件導(dǎo)入Panda DataFrame

初始步驟是將excel文件導(dǎo)入DataFrame,以便我們執(zhí)行所有任務(wù)。我將演示支持xls和xlsx文件擴(kuò)展名的Pandas的read_excel方法。read_csv與read_excel相同,就不做深入討論了,但我會分享一個(gè)例子。
盡管read_excel方法包含數(shù)百萬個(gè)參數(shù),但我們只討論那些在日常操作中最常見的那些。
我們使用Iris樣本數(shù)據(jù)集,出于教育目的,該數(shù)據(jù)集可在線免費(fèi)使用。
請按照以下鏈接下載數(shù)據(jù),并將其放在與存儲Python文件的同一文件夾中。

https://archive.ics./ml/datasets/iris

1、第一步是在Python中導(dǎo)入庫
可以使用以下代碼將電子表格數(shù)據(jù)導(dǎo)入Python:
pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, parse_cols=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)

有大量可用的參數(shù),我們來看一下最常用的一些參數(shù)。

2、一些重要的Pandas read_excel選項(xiàng)

如果默認(rèn)使用本地文件的路徑,用“\”表示,接受用“/”表示,更改斜杠可以將文件添加到Python文件所在的文件夾中。如果需要有關(guān)上述內(nèi)容的詳細(xì)說明,請參閱以下文章。

https:///@ageitgey/Python-3-quick-tip-the-easy-way-to-deal-with-file-paths-on-windows-mac-and-linux-11a072b58d5f

用Python掃描目錄中的文件并選擇想要的:

3、導(dǎo)入表格

默認(rèn)情況下,文件中的第一個(gè)工作表將按原樣導(dǎo)入到數(shù)據(jù)框中。
使用sheet_name參數(shù),可以明確要導(dǎo)入的工作表。文件中的第一個(gè)表默認(rèn)值為0??梢杂霉ぷ鞅淼拿?,或一個(gè)整數(shù)值來當(dāng)作工作表的index。
4、使用工作表中的列作為索引
除非明確提到,否則索引列會添加到DataFrame中,默認(rèn)情況下從0開始。
使用index_col參數(shù)可以操作數(shù)據(jù)框中的索引列,如果將值0設(shè)置為none,它將使用第一列作為index。

5、略過行和列

默認(rèn)的read_excel參數(shù)假定第一行是列表名稱,會自動(dòng)合并為DataFrame中的列標(biāo)簽。使用skiprows和header之類的函數(shù),我們可以操縱導(dǎo)入的DataFrame的行為。
6、導(dǎo)入特定列
使用usecols參數(shù),可以指定是否在DataFrame中導(dǎo)入特定的列。
這只是個(gè)開始,并不是所有的功能,但已足夠你“嘗鮮”了。

二、查看的數(shù)據(jù)的屬性

現(xiàn)在我們有了DataFrame,可以從多個(gè)角度查看數(shù)據(jù)了。Pandas有很多我們可以使用的功能,接下來將使用其中一些來看下我們的數(shù)據(jù)集。

1、從“頭”到“腳”

查看第一行或最后五行。默認(rèn)值為5,也可以自定義參數(shù)。
2、查看特定列的數(shù)據(jù)

3、查看所有列的名字


4、查看信息

查看DataFrame的數(shù)據(jù)屬性總結(jié):

5、返回到DataFrame


6、查看DataFrame中的數(shù)據(jù)類型

三、分割:即Excel過濾器

描述性報(bào)告是關(guān)于數(shù)據(jù)子集和聚合的,當(dāng)需要初步了解數(shù)據(jù)時(shí),通常使用過濾器來查看較小的數(shù)據(jù)集或特定的列,以便更好的理解數(shù)據(jù)。
Python提供了許多不同的方法來對DataFrame進(jìn)行分割,我們將使用它們中的幾個(gè)來了解它是如何工作的。

1、查看列

包括以下三種主要方法:
  • 使用點(diǎn)符號:例如data.column_name

  • 使用方括號和列名稱:數(shù)據(jù)[“COLUMN_NAME”]

  • 使用數(shù)字索引和iloc選擇器:data.loc [:,'column_number']


2、查看多列

3、查看特定行

這里使用的方法是loc函數(shù),其中我們可以指定以冒號分隔的起始行和結(jié)束行。注意,索引從0開始而不是1。

4、同時(shí)分割行和列


5、在某一列中篩選


6、篩選多種數(shù)值


7、用列表篩選多種數(shù)值



8、篩選不在列表或Excel中的值


9、用多個(gè)條件篩選多列數(shù)據(jù)

輸入應(yīng)為列一個(gè)表,此方法相當(dāng)于excel中的高級過濾器功能:

10、根據(jù)數(shù)字條件過濾


11、在Excel中復(fù)制自定義的篩選器

12、合并兩個(gè)過濾器的計(jì)算結(jié)果

13、包含Excel中的功能

14、從DataFrame獲取特定的值

如果想要用特定值查看整個(gè)DataFrame,可以使用drop_duplicates函數(shù):

15、排序

對特定列排序,默認(rèn)升序:

四、統(tǒng)計(jì)功能

1、描述性統(tǒng)計(jì)

描述性統(tǒng)計(jì),總結(jié)數(shù)據(jù)集分布的集中趨勢,分散程度和正態(tài)分布程度,不包括NaN值:
描述性統(tǒng)計(jì)總結(jié):

五、數(shù)據(jù)計(jì)算

1、計(jì)算某一特定列的值

輸出結(jié)果是一個(gè)系列。稱為單列數(shù)據(jù)透視表:

2、計(jì)數(shù)

統(tǒng)計(jì)每列或每行的非NA單元格的數(shù)量:

3、求和

按行或列求和數(shù)據(jù):
為每行添加總列:

4、將總列添加到已存在的數(shù)據(jù)集


5、特定列的總和,使用loc函數(shù)

或者,我們可以用以下方法:

6、用drop函數(shù)刪除行



7、計(jì)算每列的總和

以上,我們使用的方法包括:
  • Sum_Total:計(jì)算列的總和

  • T_Sum:將系列輸出轉(zhuǎn)換為DataFrame并進(jìn)行轉(zhuǎn)置

  • Re-index:添加缺少的列

  • Row_Total:將T_Sum附加到現(xiàn)有的DataFrame

8、多條件求和,即Excel中的Sumif函數(shù)

9、多條件求和

10、求算術(shù)平均值

11、求最大值


12、求最小值


13、Groupby:即Excel中的小計(jì)函數(shù)

六、DataFrame中的數(shù)據(jù)透視表功能

誰會不喜歡Excel中的數(shù)據(jù)透視表呢?它是分析數(shù)據(jù)的最佳方式,可以快速瀏覽信息,使用超級簡單的界面分割數(shù)據(jù),繪制圖表,添加計(jì)算列等。
現(xiàn)在沒有了工作界面,必須用編寫代碼的方式來輸出結(jié)果,且沒有生成圖表功能,但需要我們充分理解數(shù)據(jù)透視表的精華。
簡單的數(shù)據(jù)透視表,顯示SepalWidth的總和,行列中的SepalLength和列標(biāo)簽中的名稱。
現(xiàn)在讓我們試著復(fù)雜化一些:
用fill_value參數(shù)將空白替換為0:
可以使用dictionary函數(shù)進(jìn)行單獨(dú)計(jì)算,也可以多次計(jì)算值:

七、Vlookup函數(shù)

Excel中的vlookup是一個(gè)神奇的功能,是每個(gè)人在學(xué)習(xí)如何求和之前就想要學(xué)習(xí)的。會用vlookup是很迷人的,因?yàn)檩敵鼋Y(jié)果時(shí)像變魔術(shù)一樣??梢苑浅W孕诺卣f它是電子表格上計(jì)算的每個(gè)數(shù)據(jù)的支柱。
不幸的是Pandas中并沒有vlookup功能!
由于Pandas中沒有“Vlookup”函數(shù),因此Merge用與SQL相同的備用函數(shù)。有四種合并選項(xiàng):
  • left——使用左側(cè)DataFrame中的共享列并匹配右側(cè)DataFrame,N/A為NaN;

  • right——使用右側(cè)DataFrame中的共享列并匹配左側(cè)DataFrame,N/A為NaN;

  • inner——僅顯示兩個(gè)共享列重疊的數(shù)據(jù)。默認(rèn)方法;

  • outer——當(dāng)左側(cè)或右側(cè)DataFrame中存在匹配時(shí),返回所有記錄。

以上可能不是解釋這個(gè)概念的最好例子,但原理是一樣的。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多