天天看點

python 利用dataframe實作連接配接

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