merge列連接配接
result_dataframe = pd.merge(left_dataframe, right_dataframe, how='outer', on=['key1', 'key2'])
join列連接配接
result_dataframe = left_dataframe.join(right_dataframe, on=['key1', 'key2'], how='inner')
append行連接配接
result_df= df1.append(df4)
result_df = df1.append([df2, df3])
concat行連接配接
frames = [df1, df2, df3]
result = pd.concat(frames)
*備注:
DataFrame.merge(left,right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, 'y’), copy=True, indicator=False, validate=None)
參數含義:
1:left、right DataFrame或命名為Series
需要合并的DataFrame
2:how {‘left’,‘right’,‘outer’,‘inner’},預設’inner’
left:僅使用左DataFrame中的鍵,類似于SQL左外連接配接; 保留關鍵順序。
right:僅使用右DataFrame中的鍵,類似于SQL右外連接配接; 保留關鍵順序。
outer:使用來自兩個DataFrame的鍵的并集,類似于SQL全外連接配接; 按字典順序排序鍵。
inner:使用兩個DataFrame的鍵交集,類似于SQL内連接配接; 保留左鍵的順序。
3:on 标簽或清單
以一列的字段作為合并基準唯一值
4:left_on、right_on 标簽或清單,或類似數組
在左側/右側連接配接的列或者索引
5:left_index、right_index 标簽或清單,或類似數組
以左側或者右側索引作為連接配接
6:sort bool,預設為False
在結果DataFrame中按字典順序對連接配接鍵進行排序。如果為False,則連接配接鍵的順序取決于連接配接類型(關鍵字 如何)
7:suffixes (str,str)的元組,預設(‘x’,’ y’)
合并後的DataFrame重複列名會加上_x’,’ y’字尾
d.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
objs︰ 一個序列或系列、 綜合或面闆對象的映射。如果字典中傳遞,将作為鍵參數,使用排序的鍵,除非它傳遞,在這種情況下的值将會選擇 (見下文)。任何沒有任何反對将默默地被丢棄,除非他們都沒有在這種情況下将引發 ValueError。
axis: {0,1,…},預設值為 0。要連接配接沿軸。
join: {‘内部’、 ‘外’},預設 ‘外’。如何處理其他 axis(es) 上的索引。聯盟内、 外的交叉口。
ignore_index︰ 布爾值、 預設 False。如果為 True,則不要串聯軸上使用的索引值。由此産生的軸将标記 0,…,n-1。這是有用的如果你串聯串聯軸沒有有意義的索引資訊的對象。請注意在聯接中仍然受到尊重的其他軸上的索引值。
join_axes︰ 索引對象的清單。具體的名額,用于其他 n-1 軸而不是執行内部/外部設定邏輯。
keys︰ 序列,預設為無。建構分層索引使用通過的鍵作為最外面的級别。如果多個級别獲得通過,應包含元組。
levels︰ 清單的序列,預設為無。具體水準 (唯一值) 用于建構多重。否則,他們将推斷鑰匙。
names︰ 清單中,預設為無。由此産生的分層索引中的級的名稱。
verify_integrity︰ 布爾值、 預設 False。檢查是否新的串聯的軸包含重複項。這可以是相對于實際資料串聯非常昂貴。
副本︰ 布爾值、 預設 True。如果為 False,請不要,不必要地複制資料。
參考:
https://blog.csdn.net/qq_42707449/article/details/81116656
https://blog.csdn.net/sdwww3238/article/details/86702971