最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

3分鐘搞懂Python 數(shù)據(jù)分析庫 Pandas

2020-07-22 14:11 作者:自學(xué)Python的小姐姐呀  | 我要投稿

Pandas 通常用于快速簡(jiǎn)單的數(shù)據(jù)操作、聚合和可視化。在這篇文章中,我將概述如何學(xué)習(xí)這一工具的使用。

Pandas 官網(wǎng)鏈接:pandas.pydata.org/

首先要給那些不熟悉 Pandas 的人簡(jiǎn)單介紹一下,Pandas 是 Python 生態(tài)系統(tǒng)中最流行的數(shù)據(jù)分析庫。它能夠完成許多任務(wù),包括:

讀 / 寫不同格式的數(shù)據(jù)

選擇數(shù)據(jù)的子集

跨行 / 列計(jì)算

尋找并填寫缺失的數(shù)據(jù)

在數(shù)據(jù)的獨(dú)立組中應(yīng)用操作

重塑數(shù)據(jù)成不同格式

合并多個(gè)數(shù)據(jù)集

先進(jìn)的時(shí)序功能

通過 matplotlib 和 seaborn 進(jìn)行可視化操作

盡管 Pandas 功能強(qiáng)大,但它并不為整個(gè)數(shù)據(jù)科學(xué)流程提供完整功能。Pandas 通常是被用在數(shù)據(jù)采集和存儲(chǔ)以及數(shù)據(jù)建模和預(yù)測(cè)中間的工具,作用是數(shù)據(jù)挖掘和清理。

數(shù)據(jù)科學(xué)管道

對(duì)于典型的數(shù)據(jù)科學(xué)家而言,Pandas 在數(shù)據(jù)管道傳輸過程中扮演著非常重要的角色。其中一個(gè)量化指標(biāo)是通過社區(qū)討論頻率趨勢(shì)(Stack Overflow trends app (?insights.stackoverflow.com?) )。

現(xiàn)在,Pandas 在 Stack Overflow 上的活動(dòng)居 Python 數(shù)據(jù)科學(xué)庫之首,占整個(gè)站點(diǎn)新問題提交總數(shù)的 1%。

Stack Overflow 的濫用

從上面的圖標(biāo)中,我們發(fā)現(xiàn)很多人都在使用 Pandas,但同時(shí)也對(duì)此很困惑。我在 Stack Overflow 上回答了關(guān)于 Pandas 的約 400 個(gè)問題,親眼目睹了大家對(duì)這個(gè)庫理解得多糟。Stack Overflow 給程序員提供了極大的便捷,但同時(shí)也產(chǎn)生了一個(gè)巨大的缺點(diǎn)。因?yàn)槌绦騿T能瞬間找到問題的答案并獲得滿足感,導(dǎo)致人們不愿意仔細(xì)閱讀自己擁有的文獻(xiàn)和其他資源了。其實(shí)我建議程序員每年花幾個(gè)星期的時(shí)間不用 Stack Overflow 解決問題。

手把手教你學(xué) Pandas

幾個(gè)星期前有人詢問我如何練習(xí)使用 Pandas,因此我在 r/datascience subreddit 上發(fā)布了一個(gè)簡(jiǎn)單的指南。下面的內(nèi)容將詳細(xì)說明那篇文章表達(dá)的信息。

首先,你應(yīng)該擺正目標(biāo)。你的目標(biāo)不是真的要「學(xué)習(xí) Pandas」。了解如何在庫中執(zhí)行運(yùn)算是很有用的,但這和你在實(shí)際數(shù)據(jù)分析中需要用到的 Pandas 知識(shí)并不一樣。你可以將你的學(xué)習(xí)分為兩類:

獨(dú)立于數(shù)據(jù)分析,學(xué)習(xí) Pandas 庫

學(xué)習(xí)在實(shí)際數(shù)據(jù)分析中使用 Pandas

打個(gè)比方,這兩者的區(qū)別類似于,前者是學(xué)習(xí)如何將小樹枝鋸成兩半,后者是在森林里砍一些樹。在我們?cè)敿?xì)討論之前,讓我們先總結(jié)一下這兩種方法。

獨(dú)立于數(shù)據(jù)分析,學(xué)習(xí) Pandas 庫:此方法主要包括閱讀、更關(guān)鍵的是探索 Pandas 官方文檔。(pandas.pydata.org/panda

學(xué)習(xí)在實(shí)際數(shù)據(jù)分析中使用 Pandas:此方法涉及查找和收集真實(shí)世界的數(shù)據(jù),并執(zhí)行端到端的數(shù)據(jù)分析。Kaggle 數(shù)據(jù)集 是查找數(shù)據(jù)的好地方。不過我強(qiáng)烈建議你避免在流暢使用 Pandas 前使用 Kaggle 的機(jī)器學(xué)習(xí)組件。

交替學(xué)習(xí)

在你學(xué)習(xí)如何使用 Pandas 進(jìn)行數(shù)據(jù)分析的過程中,你應(yīng)該交替學(xué)習(xí) Pandas 文檔的基礎(chǔ)以及在真實(shí)數(shù)據(jù)庫處理中的 Pandas 運(yùn)用。這非常重要。否則,你很容易在掌握完成大部分任務(wù)所需的 Pandas 基礎(chǔ)知識(shí)之后對(duì)他們產(chǎn)生完全的依賴。但其實(shí)在更高級(jí)的運(yùn)算存在時(shí),這些基礎(chǔ)又顯得太笨重了。

從文檔開始

如果你此前從沒有接觸過 Pandas 但是有著 Python 的足夠的基礎(chǔ)知識(shí),我建議你從 Pandas 官方文檔開始。文檔寫得非常詳細(xì),現(xiàn)在共有 2195 頁。即使文檔的規(guī)模如此龐大,它還是沒有涵蓋每一個(gè)操作,當(dāng)然也不涵蓋你在 Pandas 中能使用的函數(shù) / 方法與參數(shù)的所有組合。

充分利用文檔

為了充分利用文檔,不要只閱讀它。我建議你閱讀其中的 15 個(gè) 部分。對(duì)每個(gè)部分,新建一個(gè) Jupyter notebook。如果你對(duì) Jupyter notebook 不太熟悉,請(qǐng)先閱讀來源于 Data Camp 的這篇文章:datacamp.com/community/

建立你的首個(gè) Jupyter notebook

請(qǐng)從「數(shù)據(jù)結(jié)構(gòu)入門(Intro to Data Structures)」這個(gè)章節(jié)開始。在你的 Jupyter notebook 旁邊打開這個(gè)頁面。當(dāng)你閱讀文檔時(shí),寫下(而不是復(fù)制)代碼,并且在筆記本中執(zhí)行。在執(zhí)行代碼的過程中,請(qǐng)?zhí)剿鬟@些操作,并嘗試探索使用它們的新方法。

然后選擇「索引和選擇數(shù)據(jù)(Indexing and Selecting Data)」這個(gè)部分。新建一個(gè) Jupyter notebook,同樣編寫、執(zhí)行代碼,然后探索你學(xué)到的不同操作。選擇數(shù)據(jù)是初學(xué)者最難理解的部分,我專門在 .locvs .iloc 上寫了一個(gè)長(zhǎng)篇文章(stackoverflow.com/quest),你可能想從中看到另一個(gè)解釋。

在學(xué)習(xí)這兩個(gè)部分之后,你應(yīng)該能了解一個(gè) DataFrame 和一個(gè) Series 的組件,也能明白如何從數(shù)據(jù)中選擇不同的子集?,F(xiàn)在可以閱讀「10 minutes to pandas」,以獲得更加其他有用操作的廣泛概述。和學(xué)習(xí)所有部分一樣,請(qǐng)新建一個(gè) notebook。

按下 shift + tab + tab 獲得幫助

我經(jīng)常在使用 Pandas 時(shí)按下 shift + tab + tab。當(dāng)指針放在名稱中或是在有效 Python 代碼括號(hào)當(dāng)中時(shí),被指對(duì)象就會(huì)彈出一個(gè)小滾動(dòng)框顯示其文檔。這個(gè)小框?qū)ξ襾碚f十分有用,因?yàn)橛涀∷械膮?shù)名稱和它們的輸入類型是不可能的。

按下 shift + tab + tab,開啟 stack 方式的文檔

你也可以在「.」之后直接按下 tab 鍵,得到全部有效對(duì)象的下拉菜單

在 DataFrame ( df. ) 后按下 tab,獲得 200+ 有效對(duì)象列表

官方文檔的主要缺點(diǎn)

雖然官方文檔描述得非常詳盡,但它并不能很好地指導(dǎo)如何正確使用真實(shí)數(shù)據(jù)進(jìn)行數(shù)據(jù)分析。所有數(shù)據(jù)都是人為設(shè)計(jì)或者隨機(jī)生成的。真正的數(shù)據(jù)分析會(huì)涉及好幾個(gè)、甚至幾十個(gè) Pandas 操作串行。如果你只看文檔,你永遠(yuǎn)不會(huì)接觸到這些。使用文檔學(xué)習(xí) Pandas 呆板而機(jī)械,各個(gè)方法學(xué)起來相互獨(dú)立沒有聯(lián)系。

建立你的首次數(shù)據(jù)分析

在讀完上述三部分文檔之后,就可以首次接觸真實(shí)數(shù)據(jù)了。如前所述,我建議你從 Kaggle 數(shù)據(jù)集開始。你可以通過大眾投票熱度進(jìn)行挑選,例如選擇 TMDB 5000 Movie 數(shù)據(jù)集。下載數(shù)據(jù),然后在該數(shù)據(jù)集上新建一個(gè) Jupyter notebook。你可能目前并不能進(jìn)行高級(jí)的數(shù)據(jù)處理,但你應(yīng)該能聯(lián)系你在文檔的前三部分學(xué)到的知識(shí)。

檢視內(nèi)核

每一個(gè) Kaggle 數(shù)據(jù)集都有一個(gè)內(nèi)核(kernel)部分。不要被「內(nèi)核」這個(gè)名字迷惑了——它只是一個(gè)將 Kaggle 數(shù)據(jù)集放在 Python 或 R 語言處理的 Jupyter notebook。這是很好的學(xué)習(xí)機(jī)會(huì)。在你做了一些基本的數(shù)據(jù)分析之后,打開一個(gè)比較流行的 Python kernel,通讀其中的幾個(gè),把你感興趣的幾個(gè)代碼片段插入到自己的代碼里。

如果對(duì)某些問題不能理解,你可以在評(píng)論區(qū)提問。其實(shí)你可以創(chuàng)建自己的 kernel,不過現(xiàn)在,我覺得你還是在本地筆記本上工作比較好。

回歸官方文檔

當(dāng)你完成了你的第一個(gè) kernel 之后,你可以回歸文檔然后閱讀其他部分。下面是我建議的閱讀順序:

處理丟失的數(shù)據(jù)

分組:split-apply-combine 模式

重塑和數(shù)據(jù)交叉表

數(shù)據(jù)合并和連接

輸入輸出工具(Text,CSV,HDF5 …)

使用文本數(shù)據(jù)

可視化

時(shí)間序列 / 日期功能

時(shí)間差

分類數(shù)據(jù)

計(jì)算工具

多重索引 / 高級(jí)索引

上述順序與文檔主頁左側(cè)的順序明顯不同,其中涵蓋了我認(rèn)為最重要的主題。文檔中的某些部分沒有在上面列出,你可以在之后自行閱讀他們。

在閱讀上述部分的文檔并完成大約 10 個(gè) Kaggle kernel 之后,你應(yīng)該可以無障礙地弄懂 Pandas 的機(jī)制,同時(shí)可以順利地進(jìn)行實(shí)際數(shù)據(jù)分析。

學(xué)習(xí)探索性數(shù)據(jù)分析

通過閱讀許多流行的 Kaggle kernel,你會(huì)在建立良好數(shù)據(jù)分析方面收獲豐富。對(duì)于更加正式和嚴(yán)格的方法,我建議你閱讀 Howard Seltman 在線書籍的第四章節(jié),「Exploratory Data Analysis」。(stat.cmu.edu/~hseltman/

建立自己的 Kernel

你應(yīng)該考慮在 Kaggle 上創(chuàng)建自己的 kernel。這是強(qiáng)制自己將程序?qū)懙们逦暮梅椒āMǔ?,那些你自己寫的代碼都亂糟糟的沒有順序,對(duì)他人(包括未來的自己)來說都毫無可讀性。但當(dāng)你在網(wǎng)上發(fā)表 Kernel 的時(shí)候,我會(huì)建議你做得好一些,就像是期待你現(xiàn)在或未來老板讀取那樣。你可以在開頭寫一個(gè)執(zhí)行總結(jié)或摘要,然后用注釋解釋每個(gè)代碼塊。我通常會(huì)寫一個(gè)探索性但混亂的程序,然后再寫一個(gè)完全獨(dú)立可讀的程序作為最終產(chǎn)品。這是我的一位學(xué)生在 HR analytics 數(shù)據(jù)集上寫的 kernel:kaggle.com/aselad/why-a

不要只是依賴 Pandas,試著掌握它

一個(gè)把 Pandas 用的過得去的人和一個(gè)掌握 Pandas 的人有很大的區(qū)別。Pandas 的常規(guī)用戶通常只能寫比較差的代碼,因?yàn)?Pandas 有多種功能和多種方式去實(shí)現(xiàn)同樣的結(jié)果。編寫簡(jiǎn)單的程序也很容易得到你的結(jié)果,但其實(shí)效率非常低。

如果你是一個(gè)使用 Python 的數(shù)據(jù)科學(xué)家,你可能已經(jīng)頻繁使用 Pandas。所以你應(yīng)該把掌握 Pandas 這件事擺在重要的位置上,它能夠?yàn)槟銊?chuàng)造很多價(jià)值。

你可以在下面的鏈接中獲得許多有趣的技巧:stackoverflow.com/quest

使用 Stack Overflow 檢驗(yàn)?zāi)愕闹R(shí)

如果你不能回答 Stack Overflow 的關(guān)于一個(gè) Python 庫的大部分問題,你就不算真正了解它。這種論斷可能有點(diǎn)絕對(duì),但是大體說來,Stack Overflow 為特定了解一個(gè)庫提供了很好的測(cè)試平臺(tái)。Stack Overflow 上有超過 50000 個(gè)帶有 Pandas 標(biāo)簽的問題,所以你有一個(gè)無窮無盡的數(shù)據(jù)庫能建立你對(duì) Pandas 的知識(shí)。

如果你從沒有在 Stack Overflow 上回答過問題,我建議你看看那些已有答案的來問題,并且嘗試只通過文檔來回答他們。當(dāng)你覺得你可以將高質(zhì)量的回答整合起來的時(shí)候,我建議你回答一些沒有被解答的問題。在 Stack Overflow 回答問題是鍛煉我的 Pandas 技能的最佳方式。

完成你自己的項(xiàng)目

Kaggle kernel 非常棒,但最終你需要處理一個(gè)獨(dú)一無二的任務(wù)。第一步是尋找數(shù)據(jù)。其中有許多數(shù)據(jù)資源,如:

data.gov

data.world

紐約公開數(shù)據(jù),休斯頓公開數(shù)據(jù),丹佛公開數(shù)據(jù)——大多數(shù)美國(guó)大城市都開放了數(shù)據(jù)門戶。

找到想要探索的數(shù)據(jù)集之后,繼續(xù)用相同的方式創(chuàng)建 Jupyter notebook,當(dāng)你有一個(gè)很好的最終成果時(shí),可以將它發(fā)布到 github 上。

總結(jié)

總之,作為一個(gè)初學(xué)者,我們需要使用文檔學(xué)習(xí) Pandas 運(yùn)算的主要機(jī)制,使用真實(shí)的數(shù)據(jù)集,從 Kaggle kernel 開始學(xué)習(xí)做數(shù)據(jù)分析,最后,在 Stack Overflow 上檢驗(yàn)?zāi)愕闹R(shí)。


3分鐘搞懂Python 數(shù)據(jù)分析庫 Pandas的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
晋宁县| 瓮安县| 西昌市| 嘉善县| 德令哈市| 定襄县| 开鲁县| 满洲里市| 萝北县| 廊坊市| 九龙城区| 布拖县| 方山县| 论坛| 达孜县| 宜春市| 南开区| 迁安市| 澄江县| 寻甸| 夏津县| 通许县| 瑞昌市| 太保市| 濮阳县| 桦川县| 正安县| 汤原县| 鹤岗市| 涡阳县| 丹巴县| 邢台县| 沙洋县| 佳木斯市| 新竹县| 黑龙江省| 虞城县| 密云县| 凤山市| 长治市| 响水县|