1. 程式人生 > >Python資料處理庫pandas入門教程

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最核心的就是SeriesDataFrame兩個資料結構。

這兩種型別的資料結構對比如下:

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的時候指定索引。索引未必一定需要是整數,可以是任何型別的資料,例如字串。例如我們以七個字母來對映七個音符。索引的目的是可以通過它來獲取對應的資料,例如下面這樣: