Python資料處理庫pandas入門教程
pandas是一個Python的yuyi語言軟體包,在我們使用Python語音進行機器學習程式設計的時候,這是一個非常常用的基礎程式設計庫。本文是對它的一個入門教程。
pandas提供了快速,靈活和富有表現力的資料結構,目的是使“關係”或“標記”資料的工作既簡單又直觀。它旨在成為在Python中進行實際資料分析的高階構建塊。
入門介紹
pandas適合於許多不同型別的資料,包括:
- 具有異構型別列的表格資料,例如SQL表格或Excel資料
- 有序和無序(不一定是固定頻率)時間序列資料。
- 具有行列標籤的任意矩陣資料(均勻型別或不同型別)
- 任何其他形式的觀測/統計資料集。
由於這是一個Python語言的軟體包,因此需要你的機器上首先需要具備Python語言的環境。關於這一點,請自行在網路上搜索獲取方法。
通常情況下,我們可以通過pip
來執行安裝:
sudo pip3 install pandas
或者通過conda 來安裝pandas:
conda install pandas
目前(2018年2月)pandas的最新版本是v0.22.0(釋出時間:2017年12月29日)。
我已經將本文的原始碼和測試資料放到Github上: pandas_tutorial ,讀者可以前往獲取。
另外,pandas常常和NumPy一起使用,本文中的原始碼中也會用到NumPy。
建議讀者先對NumPy有一定的熟悉再來學習pandas,我之前也寫過一個NumPy的基礎教程,參見這裡:Python 機器學習庫 NumPy 教程
核心資料結構
pandas最核心的就是Series
和DataFrame
兩個資料結構。
這兩種型別的資料結構對比如下:
DataFrame可以看做是Series的容器,即:一個DataFrame中可以包含若干個Series。
注:在0.20.0版本之前,還有一個三維的資料結構,名稱為Panel。這也是pandas庫取名的原因:pan(el)-da(ta)-s。但這種資料結構由於很少被使用到,因此已經被廢棄了。
Series
由於Series是一維結構的資料,我們可以直接通過陣列來建立這種資料,像這樣:
這段程式碼輸出如下:
# data_structure.py import pandas as pd import numpy as np series1 = pd.Series([1, 2, 3, 4]) print("series1:\n{}\n".format(series1))
這段程式碼輸出如下:
series1:
0 1
1 2
2 3
3 4
dtype: int64
這段輸出說明如下:
- 輸出的最後一行是Series中資料的型別,這裡的資料都是
int64
型別的。 - 資料在第二列輸出,第一列是資料的索引,在pandas中稱之為
Index
。
我們可以分別打印出Series中的資料和索引:
# data_structure.py
print("series1.values: {}\n".format(series1.values))
print("series1.index: {}\n".format(series1.index))
這兩行程式碼如下;
series1.values: [1 2 3 4]
series1.index: RangeIndex(start=0, stop=4, step=1)
如果不指定(像上面這樣),索引是[1, N-1]的形式。不過我們也可以在建立Series的時候指定索引。索引未必一定需要是整數,可以是任何型別的資料,例如字串。例如我們以七個字母來對映七個音符。索引的目的是可以通過它來獲取對應的資料,例如下面這樣: