首页 > 解决方案 > 两个具有收入完整值的数据框

问题描述

假设我有两个数据框 A 和 B,id 为:1、2、3、4 ,5 ...它们具有相同的列:id、数量和 attr_1。但它们有一些缺失值,如下所示:

A

  id  quantity  attr_1  
0  1        NaN      0       
1  2        23       1       
2  3        19       NaN      
3  4        20       1    

B

  id  quantity  attr_1  
0  1        11       NaN       
1  3        Nan      1       
2  4        20       1      
3  5        19       0    

我不想将它们合并在一起,因为我需要单独处理它们。如何相互填充这些缺失值并生成如下结果:

expected for A:

  id  quantity  attr_1  
0  1        11       0       
1  2        23       1       
2  3        19       1      
3  4        19       0   

expected for B:

  id  quantity  attr_1  
0  1        11       0       
1  3        19       1       
2  4        19       1      
3  5        19       0   

标签: pythonpandasdataframe

解决方案


这应该很容易:

dfA.fillna(dfB)
dfB.fillna(dfA)

这在索引相同时起作用。否则你必须在执行上面的代码之前设置它:

dfA = dfA.set_index('id')
dfB = dfB.set_index('id')

推荐阅读