今天接著介紹 pandas 如何表對資料表合併、資料匯總等等進階用法!
假設有X表和Y表,我們想要取兩邊都有的資料,就會用到 inner join。
下圖代表僅會留下白色交集的資料。
這邊的 id 代表兩張表都有的 key 值
pd.merge(X, Y, on='id', how='inner')
以 X 表為母體表,代表 X 表的資訊都不能遺漏;將 Y 表當作額外的資訊參考,就會用到 left join
下圖會留下紅色圈圈的資料。
pd.merge(X, Y, on='id', how='left')
如果左右鍵值不一樣的話可以改成
pd.merge(X, Y, left_on='id1', right_on='id2', how='left')
描述性統計
df.describe()
相關係數
df.corr()
以 Survived 為基底,對於所有欄位做計算
df.groupby('Survived').count()
以兩種以上的欄位為基底,對其他的欄位做計算
df.groupby(['Survived','Sex']).count()
計算也可以使用多種方法
df.groupby(['Survived']).aggregate(['min', 'max', 'mean', 'median'])
類似 excel 的資料樞紐,更多請參考文件
pd.pivot_table(df, index=['Survived'], aggfunc=['mean', 'median'])
以上的招式非常多,初學者也很難在短時間內就上手起來。因此這裡推薦可以使用一個神人套件 pandas_profile
pip install pandas-profiling
profile = ProfileReport(df, title="Pandas Profiling Report")
profile
# Saving the report
profile.to_file("report.html")
接著在 notebook 就會出現可以互動式的結果,可以快速瀏覽這份資料集的概況,是資料分析工具的一大利器。
df.to_excel('filename.xlsx')
df.to_csv('filename.csv')