[英]How to merge two different versions same dataframe in python pandas?
我有两个不同版本的相同数据框。 实际上,它们是两个不同的 Excel 表,相同的列由两个不同的人更新。 他们可能有自己的条目以及相同的数据。 它看起来像这样。
df1 df2
A B C A B C
prod1 cat1 type1 prod1 cat1 type1
prod2 cat2 prod2 cat3 type2
prod3 cat4 type3 prod4 cat5
prod4 cat5 type4
我想要做的是,基于col A,我将合并这两个数据框,删除重复项,并用另一个数据框填充缺失的一个,如果两行都有值,将使用df2作为优先级价值。 最终的结果应该是这样的。
final df
A B C
prod1 cat1 type1
prod2 cat3 type2
prod3 cat4 type3
prod4 cat5 type4
如何在 python pandas 中实现这一点?
我尝试的是,我更改了除 col A 之外的 df2 列名,合并( left_on='A'
),并添加了新列,并使用基于 df1 列和 df2 列的apply
来填充值,但它没有给我正确答案。
您可以双向修补数据帧,堆叠它们,然后消除重复:
pd.concat([df1.fillna(df2), df2.fillna(df1)])\ # Patching and Stacking
.drop_duplicates(subset=['A']) # Dropping dups
# A B C
#0 prod1 cat1 type1
#1 prod2 cat2 type2
#2 prod3 cat4 type3
#3 prod4 cat5 type4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.