Python 合并两个大小不同的数据帧
我有两个不同大小的数据帧,我想合并它们 这就像根据另一个大小不同的数据帧对数据帧列进行“更新” 这是一个示例输入: 数据帧1Python 合并两个大小不同的数据帧,python,pandas,dataframe,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 我的输出应该是这样的: 数据帧
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:我是通过循环完成的,但我认为应该有更好更简单的方法来实现
我阅读了以下内容:并编写了以下代码:
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']]
瞧,df3正是我所需要的!
谢谢大家
我已经找到了答案,有没有更好的地方来回答我自己的问题
df1.merge(df2,how='left', left_on='CODUSU', right_on='CODUSU')
这应该能奏效
另外,值得注意的是,如果希望生成的数据帧不包含列ABC,那么可以使用df2.drop(“ABC”)而不仅仅是df2
这应该能奏效
另外,值得注意的是,如果希望生成的数据帧不包含列ABC,那么可以使用df2.drop(“ABC”)而不仅仅是df2。该命令返回此命令:>CODUSU Situaçoçu x TIPO1 Situaçoçu y ABC>0 1AB p A0 A 3.0>1 2C3 C B1 NaN NaN>2 3AB p C1 A 4.0`该命令返回此命令:>CODUSU Situaçoçu x TIPO1 Situaçoçu y ABC>0 1AB P A0 A 3.0>1 2C3 C B1 NaN NaN>2 3A B P C1 A 4.0`