pandas数据帧合并相同的列名,优先考虑一个

时间:2015-12-18 01:39:09

标签: python join pandas merge dataframe

合并并使用以下MWE时:

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

任何想法如何使用cat或merge或其他函数进行转换(无需手动"删除"合并之前或之后的公共列,并且合并必须仍然是内部)到以下输出(假定"优先级"给予df1['A'])?

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

1 个答案:

答案 0 :(得分:1)

您可以转置数据框,删除重复项,然后重新转换。

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