簡體   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