本文將從Python生態(tài)究珊、Pandas歷史背景剿涮、Pandas核心語法纺念、Pandas學(xué)習(xí)資源四個方面去聊一聊Pandas陷谱,期望能帶給大家一點啟發(fā)。
一瑟蜈、Python生態(tài)里的Pandas
五月份TIOBE編程語言排行榜烟逊,Python追上Java又回到第二的位置。Python如此受歡迎一方面得益于它崇尚簡潔的編程哲學(xué)铺根,另一方面是因為強大的第三方庫生態(tài)宪躯。
要說殺手級的庫,很難排出個先后順序位迂,因為python的明星庫非常多访雪,在各個領(lǐng)域都算得上出類拔萃。
比如web框架-Django、深度學(xué)習(xí)框架-TensorFlow、自然語言處理框架-NLTK、圖像處理庫-PIL踱蠢、爬蟲庫-requests稼虎、圖形界面框架-PyQt、可視化庫-Matplotlib、科學(xué)計算庫-Numpy、數(shù)據(jù)分析庫-Pandas......
上面大部分庫我都用過孽查,用的最多也最順手的是Pandas答朋,可以說這是一個生態(tài)上最完整丐一、功能上最強大洋满、體驗上最便捷的數(shù)據(jù)分析庫驻民,稱為編程界的Excel也不為過工禾。
二笙隙、十項全能的Pandas
Pandas誕生于2008年,它的開發(fā)者是Wes McKinney拾给,一個量化金融分析工程師饮焦。
因為疲于應(yīng)付繁雜的財務(wù)數(shù)據(jù),Wes McKinney便自學(xué)Python,并開發(fā)了Pandas。大神就是這么任性逼肯,沒有缺菌,就創(chuàng)造蛋叼。
為什么叫作Pandas,其實這是“Python data analysis”的簡寫带射,同時也衍生自計量經(jīng)濟學(xué)術(shù)語“panel data”(面板數(shù)據(jù))儒拂。
所以說Pandas的誕生是為了分析金融財務(wù)數(shù)據(jù),當(dāng)然現(xiàn)在它已經(jīng)應(yīng)用在各個領(lǐng)域了命雀。
2008: Pandas正式開發(fā)并發(fā)布
2009:Pandas成為開源項目
2012: 《利用Python進行數(shù)據(jù)分析》出版
2015: Pandas 成為 NumFOCUS 贊助的項目
Pandas能做什么呢?
它可以幫助你任意探索數(shù)據(jù),對數(shù)據(jù)進行讀取、導(dǎo)入摔癣、導(dǎo)出薇缅、連接、合并攒磨、分組泳桦、插入、拆分娩缰、透視灸撰、索引、切分拼坎、轉(zhuǎn)換等浮毯,以及可視化展示、復(fù)雜統(tǒng)計泰鸡、數(shù)據(jù)庫交互债蓝、web爬取等。
同時Pandas還可以使用復(fù)雜的自定義函數(shù)處理數(shù)據(jù)盛龄,并與numpy饰迹、matplotlib、sklearn余舶、pyspark啊鸭、sklearn等眾多科學(xué)計算庫交互。
Pandas有一個偉大的目標(biāo)匿值,即成為任何語言中可用的最強大赠制、最靈活的開源數(shù)據(jù)分析工具。
讓我們期待下挟憔。
三钟些、Pandas核心語法
1. 數(shù)據(jù)類型
Pandas的基本數(shù)據(jù)類型是dataframe和series兩種,也就是行和列的形式绊谭,dataframe是多行多列厘唾,series是單列多行。
如果在jupyter notebook里面使用pandas龙誊,那么數(shù)據(jù)展示的形式像excel表一樣,有行字段和列字段喷楣,還有值趟大。
2. 讀取數(shù)據(jù)
pandas支持讀取和輸出多種數(shù)據(jù)類型鹤树,包括但不限于csv、txt逊朽、xlsx罕伯、json、html叽讳、sql追他、parquet、sas岛蚤、spss邑狸、stata、hdf5
讀取一般通過read_*函數(shù)實現(xiàn)涤妒,輸出通過to_*函數(shù)實現(xiàn)单雾。
3. 選擇數(shù)據(jù)子集
導(dǎo)入數(shù)據(jù)后,一般要對數(shù)據(jù)進行清洗她紫,我們會選擇部分數(shù)據(jù)使用硅堆,也就是子集。
在pandas中選擇數(shù)據(jù)子集非常簡單贿讹,通過篩選行和列字段的值實現(xiàn)渐逃。
具體實現(xiàn)如下:
4. 數(shù)據(jù)可視化
不要以為pandas只是個數(shù)據(jù)處理工具,它還可以幫助你做可視化圖表民褂,而且能高度集成matplotlib茄菊。
你可以用pandas的plot方法繪制散點圖、柱狀圖助赞、折線圖等各種主流圖表买羞。
5. 創(chuàng)建新列
有時需要通過函數(shù)轉(zhuǎn)化舊列創(chuàng)建一個新的字段列,pandas也能輕而易舉的實現(xiàn)
6. 分組計算
在sql中會用到group by這個方法雹食,用來對某個或多個列進行分組畜普,計算其他列的統(tǒng)計值。
pandas也有這樣的功能群叶,而且和sql的用法類似吃挑。
7. 數(shù)據(jù)合并
數(shù)據(jù)處理中經(jīng)常會遇到將多個表合并成一個表的情況,很多人會打開多個excel表街立,然后手動復(fù)制粘貼舶衬,這樣就很低效。
pandas提供了merge赎离、join逛犹、concat等方法用來合并或連接多張表。
小結(jié)
pandas還有數(shù)以千計的強大函數(shù),能實現(xiàn)各種騷操作虽画。
python也還有數(shù)不勝數(shù)的寶藏庫舞蔽,等著大家去探索
三、Pandas學(xué)習(xí)資源
如果說學(xué)習(xí)Pandas最好的教程是什么码撰,那毫無疑問是官方文檔渗柿,從小白到高手,它都給你安排的妥妥的脖岛,這個后面詳細介紹朵栖。
下面我會從入門、進階柴梆、練習(xí)四個三面給你們推薦相應(yīng)的教程和資源陨溅。
1. 入門教程
這是Pandas官網(wǎng)專門為新手寫的入門引導(dǎo),大概就幾千字轩性,包括對Pandas的簡要介紹声登,和一些基本的功能函數(shù)。
主要的內(nèi)容有:數(shù)據(jù)的創(chuàng)建揣苏、查看悯嗓、篩選、拼接卸察、連接脯厨、分組、變形坑质、可視化等等合武。
而且這個小冊子包含了很多代碼示例,如果你能完整過一遍涡扼,入門Pandas基本沒啥問題稼跳。
中文版似乎也有,但翻譯的準(zhǔn)確性大家自己識別斟酌下吃沪。
這本書不用了說了汤善,可能是你入門python數(shù)據(jù)分析的第一本書,它的作者是Pandas庫的核心開發(fā)者票彪,也就是說這本書相當(dāng)于是Pandas的官方出版教程红淡。
為什么它適合入門pandas,因為整本書的編排是從數(shù)據(jù)分析的角度切入的降铸,由淺入深將pandas對數(shù)據(jù)的處理講的很透徹在旱。
當(dāng)然這本書也存在知識點過于零碎,翻譯不到位的問題推掸,但整體來說是本好書桶蝎。
w3school的pandas文檔驻仅, 邏輯比較清晰,也是從數(shù)據(jù)分析角度去講pandas俊嗽。
數(shù)據(jù)科學(xué)平臺kaggle提供的pandas入門教程雾家,共六大節(jié)涵蓋了pandas數(shù)據(jù)處理各種方法。
國內(nèi)小伙伴寫的Pandas筆記绍豁,挺詳細的,大家可以去下載項目里的notebook牙捉,放到自己電腦里練習(xí)竹揍。
2. 進階教程
這是pandas官網(wǎng)的教程,非常詳細邪铲,主要從數(shù)據(jù)處理的角度介紹相應(yīng)的pandas函數(shù)芬位,方便用戶查閱。
如果你的英文還不錯带到,也喜歡閱讀技術(shù)文檔昧碉,我是建議花時間把這份指南看一遍,配合練習(xí)缚窿。
我把整個pandas文檔下載下來曼月,發(fā)現(xiàn)足足有3000多頁医咨。
官網(wǎng)的pandas api集合,也就是pandas所有函數(shù)方法的使用規(guī)則狭握,是字典式的教程,建議多查查疯溺。
這是一個開源文檔论颅,作者不光介紹了Pandas的基本語法,還給出了大量的數(shù)據(jù)案例囱嫩,讓你在分析數(shù)據(jù)的過程中熟悉pandas各種操作恃疯。
數(shù)據(jù)科學(xué)書冊,不光有pandas墨闲,還有ipython今妄、numpy、matplotlib损俭、sklearn蛙奖,這些都是深入學(xué)習(xí)pandas不可缺少的工具。
3. 練習(xí)資源
github上一個練習(xí)項目杆兵,針對pandas每個功能都有對應(yīng)的真實數(shù)據(jù)練習(xí)雁仲。
一位國外博主總結(jié)的100多個pandas練習(xí)題,非常全面琐脏。
小結(jié)
pandas的教程主要還是以英文為主攒砖,國內(nèi)翻譯的質(zhì)量參差不齊缸兔,還是建議你在入門后多去看英文文檔,這是第一手資料吹艇,也是最靠譜的惰蜜。
公眾號:Python星球,關(guān)注有海量學(xué)習(xí)資源