【发布时间】:2021-02-04 04:51:14
【问题描述】:
假设下面的数据帧 df_1 和 df_2,我想合并“左”。
df_1= pd.DataFrame({'A': [1,2,3,4,5],
'B': [10,20,30,40,50]})
df_2= pd.DataFrame({'AA': [1,5],
'BB': [10,50],
'CC': [100, 500]})
>>> df_1
A B
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
>>> df_2
AA BB CC
0 1 10 100
1 5 50 500
我想执行合并,这将导致以下输出:
A B CC
0 1 10 100.0
1 2 20 NaN
2 3 30 NaN
3 4 40 NaN
4 5 50 500.0
所以,我尝试了pd.merge(df_1, df_2, left_on=['A', 'B'], right_on=['AA', 'BB'], how='left'),不幸的是它重复了我合并的列:
A B AA BB CC
0 1 10 1.0 10.0 100.0
1 2 20 NaN NaN NaN
2 3 30 NaN NaN NaN
3 4 40 NaN NaN NaN
4 5 50 5.0 50.0 500.0
如何在不删除“AA”和“BB”列的情况下实现这一点?
谢谢!
【问题讨论】:
-
我发现这篇文章的第二个答案(aichao)非常有用。这是我一直在寻找的东西...stackoverflow.com/questions/40570143/…我把它放在这里以防有人需要看。
标签: python pandas dataframe merge duplicates