2015-12-18 194 views
0

優先當合並,並使用以下MWE:大熊貓dataframes合併具有相同的列名,一個

import pandas as pd 
df1 = pd.DataFrame(data={'A': [1, 1], 'B': [2, 22]}) 
df2 = pd.DataFrame(data={'A': [1, 1], 'D': [4, 44]}) 
df3 = pd.DataFrame(data={'A': [1, 1], 'F': [6, 66]}) 
df = pd.concat([df1, df2, df3], axis=1, join='inner') 

輸出是:

A B A D A F 
0 1 2 1 4 1 6 
1 1 22 1 44 1 66 

任何想法如何這可能與貓被轉化或合併或其他函數(無需在合併之前或之後手動「刪除」公共列,並且合併必須仍然在內部)到以下輸出中(假定「優先級」給出df1['A'])?

A B D F 
0 1 2 4 6 
1 1 22 44 66 

回答

1

您可以轉置您的數據框,刪除重複項並再次轉換。

>>> df.T.drop_duplicates().T 
    A B D F 
0 1 2 4 6 
1 1 22 44 66 
+0

謝謝。這樣做,因爲價值是相同的。如果這些值不同,我對上面的例子做了類似的操作(對於上面的例子也是這樣):'drops = [c for df2.columns if if in df1.columns]; df2.drop(滴,軸= 1,inplace = True); drop = [c for df3.columns if c in df1.columns]; df3.drop(drop,axis = 1,inplace = True)' –

相關問題