大熊猫dataframes合并具有相同的列名,一个
问题描述:
优先当合并,并使用以下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
答
您可以转置您的数据框,删除重复项并再次转换。
>>> df.T.drop_duplicates().T
A B D F
0 1 2 4 6
1 1 22 44 66
谢谢。这样做,因为价值是相同的。如果这些值不同,我对上面的例子做了类似的操作(对于上面的例子也是这样):'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)' –