[英]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
現在我想根據A
和B
的相同值從 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,2
和B=3,4
的 2 行,但是它添加了列C_x
和C_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.