繁体   English   中英

如何在 python pandas 中合并两个不同版本的相同数据框?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM