七、合併數據集:Concat和Append操作
寫一個構造Dataframe的函數
1.知識回顧: NumPy數組的合併
np.concatenate 函數,axis 參數可以設置合併的座標軸方向
2.通過pd.concat實現簡易合併
Pandas 有一個 pd.concat() 函數與 np.concatenate 語法類似,但是配置參數更多,功能也更強大
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True)
簡單地合併一維的 Series 或 DataFrame 對象
合併高維數據,相同列方向才能垂直合併,相同行索引才能水平合併
否則橫縱交叉
1)索引重複
pd.concat 在合併時會保留索引,即使索引是重複的
雖然 DataFrame 允許這麼做,但如果結果並不是我們想要的,可以通過以下方法解決:
- 捕捉索引重複的錯誤 :設置 verify_integrity 參數
verify_integrity=False是默認的,將它改成True後,索引出現重複就會報錯
- 忽略索引,重新設置:設置 ignore_index 參數
- 增加多級索引:keys 參數
2)類似join合併
當存在要合併的Dataframe存在重合的列,可以設置join參數取並集或交集
同樣適用於行
join_axes 參數直接指定保留的行名或列名
3)append()方法
df1.append(df2),效果與pd.concat([df1, df2]) 一樣
Pandas 的 append() 不直接更新原有對象的值