簡體   English   中英

如何將 pandas dataframe 中的列復制到另一個列,同時匹配兩者中公共列的值?

[英]How to copy a column from a pandas dataframe to another while matching values of common columns in both?

我有以下 2 個 dfs。 我想將 df2 的列 C 復制到 df1 的列 C,其中 df1 的 A 和 B 列與 df2 的 A 和 B 列匹配。

df1
A    B    C    F   G ...
1   12   NaN  52  50
2   14   NaN  62  60
3   15   NaN  72  70
2   14   NaN  82  80

df2

A   B  C   D    E  ...
2  14  0  abc  xyz
3  15  1  efg  pqr
1  12  1  hij  stu

現在我希望我的 df1 看起來像:

df1
A   B  C   F    G  ...
1  12  1  52   50
2  14  0  62   60
3  15  1  72   70
2  14  0  82   80

如何在 pandas 中實現這一點? 任何幫助,將不勝感激。

First remove column C , then DataFrame.merge with left join only by filtered columns - A , B columns are for join and C is new added columns, last reorder columns by original df1 with DataFrame.reindex :

df = (df1.drop('C', 1)
         .merge(df2[['A','B', 'C']], on=['A','B'], how='left')
         .reindex(columns=df1.columns))
print (df)
   A   B  C   F   G
0  1  12  1  52  50
1  2  14  0  62  60
2  3  15  1  72  70
3  2  14  0  82  80

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM