pandas是一個Python語言的軟件包,在我們使用Python語言進行機器學習編程的時候,這是一個非常常用的基礎編程庫。本文是對它的一個入門教程。
pandas提供了快速,靈活和富有表現(xiàn)力的數(shù)據(jù)結(jié)構(gòu),目的是使“關(guān)系”或“標記”數(shù)據(jù)的工作既簡單又直觀。它旨在成為在Python中進行實際數(shù)據(jù)分析的高級構(gòu)建塊。
入門介紹
pandas適合于許多不同類型的數(shù)據(jù),包括:
具有異構(gòu)類型列的表格數(shù)據(jù),例如SQL表格或Excel數(shù)據(jù) 有序和無序(不一定是固定頻率)時間序列數(shù)據(jù)。 具有行列標簽的任意矩陣數(shù)據(jù)(均勻類型或不同類型) 任何其他形式的觀測/統(tǒng)計數(shù)據(jù)集。由于這是一個Python語言的軟件包,因此需要你的機器上首先需要具備Python語言的環(huán)境。關(guān)于這一點,請自行在網(wǎng)絡上搜索獲取方法。
關(guān)于如何獲取pandas請參閱官網(wǎng)上的說明:pandas Installation。
通常情況下,我們可以通過pip來執(zhí)行安裝:
sudo pip3 install pandas
或者通過conda 來安裝pandas:
conda install pandas
目前(2018年2月)pandas的最新版本是v0.22.0(發(fā)布時間:2017年12月29日)。
我已經(jīng)將本文的源碼和測試數(shù)據(jù)放到Github上:pandas_tutorial ,讀者可以前往獲取。
另外,pandas常常和NumPy一起使用,本文中的源碼中也會用到NumPy。
建議讀者先對NumPy有一定的熟悉再來學習pandas,我之前也寫過一個NumPy的基礎教程,參見這里:Python 機器學習庫 NumPy 教程
核心數(shù)據(jù)結(jié)構(gòu)
pandas最核心的就是Series和DataFrame兩個數(shù)據(jù)結(jié)構(gòu)。
這兩種類型的數(shù)據(jù)結(jié)構(gòu)對比如下:

DataFrame可以看做是Series的容器,即:一個DataFrame中可以包含若干個Series。
注:在0.20.0版本之前,還有一個三維的數(shù)據(jù)結(jié)構(gòu),名稱為Panel。這也是pandas庫取名的原因:pan-da-s。但這種數(shù)據(jù)結(jié)構(gòu)由于很少被使用到,因此已經(jīng)被廢棄了。
Series
由于Series是一維結(jié)構(gòu)的數(shù)據(jù),我們可以直接通過數(shù)組來創(chuàng)建這種數(shù)據(jù),像這樣:
# data_structure.pyimport pandas as pdimport numpy as npseries1 = pd.Series([1, 2, 3, 4])print("series1:/n{}/n".format(series1))這段代碼輸出如下:
series1:0 11 22 33 4dtype: int64
這段輸出說明如下:
輸出的最后一行是Series中數(shù)據(jù)的類型,這里的數(shù)據(jù)都是int64類型的。 數(shù)據(jù)在第二列輸出,第一列是數(shù)據(jù)的索引,在pandas中稱之為Index。我們可以分別打印出Series中的數(shù)據(jù)和索引:
# data_structure.pyprint("series1.values: {}/n".format(series1.values))print("series1.index: {}/n".format(series1.index))
新聞熱點
疑難解答
圖片精選