繁体   English   中英

Pandas 根据其他列值从另一个更新一个 df

[英]Pandas update one df from another based on other columns value

我有两个数据框:

df1:

   A  B  C
0  1  3  5
1  2  4  6

df2:

   A  B   C
0  1  3  50
1  3  5  -1
2  2  4  60

现在我想根据AB的相同值从 df2 更新 df1 ,以获得如下内容:

   A  B  C
0  1  3  50
1  2  4  60

我尝试了什么:

  • .update()结果A[1] == 3 nad B[1] == 5 ,它只是按顺序进行,与密钥不匹配(因为我不能在那里指定它)
  • .merge() with left join and on=["A", "B"] - 到目前为止我得到的最好的结果,它确实将结果 df 保留为A=1,2B=3,4的 2 行,但是它添加了列C_xC_y ,后者具有我想要的值,但我希望它们位于C

有没有一种干净的方法可以做到这一点,或者我应该为.merge()并删除带有_x后缀的列 + 将C_y重命名为C

将 C 放入 df1 然后合并

df1.drop('C', axis=1).merge(df2, on=['A', 'B'], how='left')

   A  B   C
0  1  3  50
1  2  4  60

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM