【问题标题】:How to copy a column from a pandas dataframe to another while matching values of common columns in both?如何在匹配两个共同列的值的同时将一列从熊猫数据框中复制到另一个?
【发布时间】:2020-03-08 22:10:40
【问题描述】:

我有以下 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 中实现这一点?任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    首先删除列C,然后删除DataFrame.merge,仅通过过滤列进行左连接-AB 列用于连接,C 是新添加的列,最后按原始df1 重新排序列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
    

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 1970-01-01
      • 2018-07-10
      • 2018-08-03
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2022-10-23
      • 2018-03-29
      相关资源
      最近更新 更多