Pandas 基本格式

      在〈Pandas 基本格式〉中尚無留言

本篇的 Pandas 格式說明,可以想像成在 Python 中如何操作 Excel  表格,比如如何建立 Excel 表格,如何存檔讀檔,如何選取欄或列,如何計算。

Pandas 貓熊

pandas 是 Python 一個重要的數據分析套件,於2009年開源出來,以 numpy 為基本資料型態,再度創造另一種高效易用的資料格式(DataFrame),可以快速進行資料分析。

Pandas 的基本資料格式叫 DataFrame,簡稱 df。DataFrame 這名詞不好理解,一般教學也說不清楚,其實很簡單,只要把 DataFrame 想成是一張 Excel 工作表格即可。

Pandas 可以讀取 Excel 檔案產生 DataFrame 資料格式,DataFrame 也可以將裏面的資料存成 Excel 檔。學習 Pandas 就好像在學習怎麼用 Python 操作 Excel。

使用前, 必需先 pip install pandas, 記注意, 有加 “s” 喔

補充說明

標準正態分佈(Standard normal distribution) : 又稱為u分佈,是以0為均值、以1為標準差的正態分佈,記為N(0,1)

np.random.randn(4,3,2) : 產生三維的正態分佈亂數, 維度可以隨便增加, 也可以是一維

Pandas的資料結構

Series : 類似 Excel 表格,但只有一個欄位。有自已的索引, 也可以自行命名。
DataFrame : 類似 Excel 表格,可以有欄位名,而每列資料錄可以有索引。

Series

Series 其實只有一個欄位,但有多筆資料。每筆資料都可以自訂索引,如下圖。

Series的用途,除了可以使用索引指定資料外,也可以使用標籤來指定,比如 s[0],或 s[‘地址’]。

預設索引

產生Series的方式,可以使用 pd.Series([]), 將list或np.array([])或字典 資料傳入, 如下示範list及array的使用方式。

import pandas as pd
import numpy as np
s1=pd.Series([1,2,3,4,5])
print(s1)
print("s1[4]=%d " % s1[4])
s2=pd.Series(np.random.randint(0,3,5))
print(s2)
結果 :
0 1
1 2
2 3
3 4
4 5
dtype: int64
s1[4]=5 
0 1
1 1
2 0
3 0
4 2
dtype: int32

自訂索引

Series 的自訂索引需在 Series 方法中加入 index 參數,index 可以為數字,也可以為字串。

當 index 為字串時,稱為標籤(Label),同時也會產生由 0 開始的索引。
當 index 為數字時,則只有索引,沒有標籤。

另外請注意一件事,index可以為list,亦可以為np 的陣列格式。
pd.Series([資料…], index=[索引…])
pd.Series([資料…], index=np.array([索引…]))

當有自訂標籤時,雖說也有索引,可以使用 s[4]這種寫法,但在新版的 Pandas 會出現如下警告

FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`

這個警告是說 s[4] 這種寫法即將被拋棄,請改用 s.iloc[4],指定第 4 列的意思。

import pandas as pd
index=['mercury','venus','earth','mars','jupiter','saturn','uranus','neptune','pluto']
planet=['水星','金星','地球','火星','木星','土星','天王星','海王星','冥王星']
s=pd.Series(planet, index=index)
print(s)
print(f"s.iloc[4]={s.iloc[4]}")
print(f"s['jupiter']={s['jupiter']}")
結果 : 
mercury     水星
venus       金星
earth       地球
mars        火星
jupiter     木星
saturn      土星
uranus     天王星
neptune    海王星
pluto      冥王星
dtype: object
s[4]=木星
s['jupiter']=木星

使用字典資料

Series 亦可使用字典產生,如下所示。

import pandas as pd
d={'name':'Thomas', 'sex':'female', 'age':50, 'phone':'0989889123'}
s=pd.Series(d)
print(s)

print('讀取值,可用如下三個方法,分別為索引,標籤,多索引list')
print(f'索引 : {s[0]}')
print(f'標籤 : {s["name"]}')
print(f'多索引 : \n{s[[0,1,2]]}')
print(f'多標籤 : \n{s[['name', 'sex']]}

結果 : 
name Thomas
sex female
age 50
phone 0989889123
dtype: object
讀取值,可用如下三個方法,分別為索引,標籤,多索引list
索引 : Thomas
標籤 : Thomas
多索引 : 
name Thomas
sex female
age 50
多標籤 : 
name Thomas
sex female
dtype: object

上述 s[[0,1,2]] 看起來怪怪的,請記得最外面的 “[]” 是包含索引的符號,而裏面的 “[]” 則是 List。
s[ [list] ]

DataFrame

把 DataFrame 是具有多個欄位,多筆資料的 Excel 表格,每個欄位需有欄位名稱,每列需有索引,如下圖的資料所示。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *