1 . merge
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)
left︰ 對象 right︰ 另一個對象 on︰ 要加入的列 (名稱)。必須在左、 右綜合對象中找到。如果不能通過 left_index 和 right_index 是假,將推斷 DataFrames 中的列的交叉點為連接鍵 left_on︰ 從左邊的綜合使用作為鍵列。可以是列名或數組的長度等於長度綜合 right_on︰ 從正確的綜合,以用作鍵列。可以是列名或數組的長度等於長度綜合 left_index︰ 如果為 True,則使用索引 (行標簽) 從左綜合作為其聯接鍵。在與多重 (層次) 的綜合,級別數必須匹配聯接鍵從右綜合的數目 right_index︰ 相同用法作為正確綜合 left_index how︰ 之一 '左','右','外在'、 '內部'。默認為內部。每個方法的更詳細說明請參閱︰ sort︰ 綜合通過聯接鍵按字典順序對結果進行排序。默認值為 True,設置為 False將提高性能極大地在許多情況下 suffixes︰ 字符串后綴並不適用於重疊列的元組。默認值為 ('_x','_y')。 copy︰ 即使重新索引是不必要總是從傳遞的綜合對象,復制的數據 (默認值True)。在許多情況下不能避免,但可能會提高性能 / 內存使用情況。可以避免復制上述案件有些病理但盡管如此提供此選項。 indicator︰ 將列添加到輸出綜合呼吁 _merge 與信息源的每一行。_merge 是絕對類型,並對觀測其合並鍵只出現在 '左' 的綜合,觀測其合並鍵只會出現在 '正確' 的綜合,和兩個如果觀察合並關鍵發現在兩個 right_only left_only 的值。
1) . result = pd.merge(left, right, on='key')
2) . result = pd.merge(left, right, on=['key1', 'key2'])
3) . result = pd.merge(left, right, how='left', on=['key1', 'key2'])
4) . result = pd.merge(left, right, how='right', on=['key1', 'key2'])
5) . result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
2 . append
1) . result = df1.append(df2)
2) . result = df1.append(df4)
3) . result = df1.append([df2, df3])
4) . result = df1.append(df4, ignore_index=True)
3 . join
left.join(right, on=key_or_keys) pd.merge(left, right, left_on=key_or_keys, right_index=True, how='left', sort=False)
1) . result = left.join(right, on='key')
2) . result = left.join(right, on=['key1', 'key2'])
3) . result = left.join(right, on=['key1', 'key2'], how='inner')
4 . concat
pd.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,請不要,不必要地復制數據。
frames = [df1, df2, df3]
result = pd.concat(frames)
result = pd.concat(frames, keys=['x', 'y', 'z']) result.ix['y']
result = pd.concat([df1, df4], axis=1) result = pd.concat([df1, df4], axis=1, join='inner') result = pd.concat([df1, df4], axis=1, join_axes=[df1.index]) result = pd.concat([df1, df4], ignore_index=True)