【问题标题】: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