pandas pivotのチートシート
pivotとpivot_tableの違い
pivot_table
はpivot
の一般化pivot_table
はaggregation関数を使えたり、fill_value
を使える
pivot
- 特定のrowのvalueをcolumnにする
index
,columns
,values
を指定する
e.g. 全世界の年ごとのドクターの数
import pandas as pd
df = pd.read_csv("medicalDoctors.csv")
df.pivot(index=["Location"], columns=["Period"], values=["First Tooltip"])
pivotした結果、multilevelになったcolumnをdropする
df.columns = df.columns.droplevel()
pivotした結果、index名とかが指定できなくなるとき
df.columns = df.columns.to_series().str.join('_')
pivot_tableでvaluesの引数が複数になる場合
aggfunc
でどのように集約するかを決める必要がある
具体例
df.pivot_table(index=["os", "date"],
columns=["source"],
values=["any duplicatable value"],
aggfunc=np.mean) # 平均を取る場合
pivot_tableで存在しないデータの値を埋める
pivot_table
関数のfill_value
引数に値を指定することで、存在しない値を埋めることができる
df.pivot_table(index=["date", "os"], columns=["source"], values=["value_column"], fill_value=0.0)