【问题标题】:merge 2 pandas dataframe in 1 with data priority以数据优先级将 2 个 pandas 数据帧合并为 1 个
【发布时间】:2018-06-02 13:40:04
【问题描述】:

我有 2 个数据框:

A = [ A  B  C
name1 1  2  3
name2 1  2  3
name3 1  2  3
]

B = [  A  B  C  D
name1 11 12 13 12
name2 12 22 23 23
name3 31 32 33 14
name4 41 42 43 44
] 

我想在 A 中添加我在 A 中没有但在 B 中具有的列和行,而不更改 A 中的现有数据

因此,A 必须是:

A = [ A  B  C  D
name1 1  2  3  12
name2 1  2  3  23
name3 1  2  3  14
name4 41 42 43 44
]

我应该怎么做?

【问题讨论】:

    标签: python pandas dataframe combinations


    【解决方案1】:

    使用combine_first

    df1.combine_first(df2).astype(int)
    
            A   B   C   D
    name1   1   2   3  12
    name2   1   2   3  23
    name3   1   2   3  14
    name4  41  42  43  44
    

    【讨论】:

      【解决方案2】:

      您可以使用reindex 后跟fillna

      index = A.index.union(B.index)
      columns = A.columns.union(B.columns)
      A.reindex(index=index, columns=columns).fillna(B).astype(int)
      
              A   B   C   D
      name1   1   2   3  12
      name2   1   2   3  23
      name3   1   2   3  14
      name4  41  42  43  44
      

      【讨论】:

        猜你喜欢
        • 2020-04-07
        • 2017-03-25
        • 2018-02-27
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        • 2019-08-10
        相关资源
        最近更新 更多