合并两个大小不同的数据框

时间:2020-07-22 21:23:47

标签: python pandas dataframe

我有两个大小不同的数据框,我想将它们合并。

这就像基于另一个大小不同的数据框对数据框列的“更新”。

这是示例输入:

数据框1

  CODUSU Situação TIPO1
0    1AB        P    A0
1    2C3        C    B1
2    3AB        P    C1

数据框2

  CODUSU Situação  ABC
0    1AB        A    3
1    3AB        A    4

我的输出应如下所示:

数据框3

  CODUSU Situação TIPO1
0    1AB        A    A0
1    2C3        C    B1
2    3AB        A    C1

PS:我是通过循环完成的,但是我认为应该有更好,更轻松的方法来实现它!

我阅读了以下内容:pandas merging 101并编写了这段代码:

df3=df1.merge(df2, on=['CODUSU'], how='left', indicator=False)
df3['Situação'] = np.where((df3['Situação_x'] == 'P') & (df3['Situação_y'] == 'A') , df3['Situação_y'] , df3['Situação_x'])
df3=df3.drop(columns=['Situação_x', 'Situação_y','ABC'])
df3 = df3[['CODUSU','Situação','TIPO1']]

Voilà, df3 正是我所需要的! 谢谢大家!

PS:我已经找到答案了,有更好的答案回答我自己的问题吗?

1 个答案:

答案 0 :(得分:2)

df1.merge(df2,how='left', left_on='CODUSU', right_on='CODUSU')

这应该可以解决问题。

此外,值得注意的是,如果您希望结果数据框不包含列ABC,则可以使用df2.drop(“ ABC”)而不是df2。