合并两个熊猫数据框,添加相应的值

基里尔

我有两个像这样的数据框:

df1 = pd.DataFrame({'A': [1,0,3], 'B':[0,0,1], 'C':[0,2,2]}, index =['a','b','c'])
df2 = pd.DataFrame({'A': [0,0], 'B':[2,1]}, index =['a','c'])

df1和df2:

   | A | B | C |          | A | B |    
---|---|---|---|       ---|---|---|
 a | 1 | 0 | 0 |        a | 0 | 2 |   
 b | 0 | 0 | 2 |        c | 0 | 1 |
 c | 3 | 1 | 2 |

预期结果是:

   | A | B | C |
---|---|---|---|
 a | 1 | 2 | 0 |
 b | 0 | 0 | 2 |
 c | 3 | 2 | 2 |

我有这个问题,因为在任何数据框中都可能缺少列/行(df1可能没有df2拥有所有的列和行)

阿南德·库玛(Anand S Kumar)

按照此问题的答案中的想法进行操作-在Pandas中合并2个数据框:在某些列上合并,在其他列上求和

由于在您的情况下,索引是通用的,因此您可以pandas.concat()将两个DataFrame用于索引,然后DataFrame.groupby基于索引,然后对其求和。范例-

In [27]: df1
Out[27]:
   A  B  C
a  1  0  0
b  0  0  2
c  3  1  2

In [28]: df2
Out[28]:
   A  B
a  0  2
c  0  1

In [29]: pd.concat([df1,df2]).groupby(level=0).sum()
Out[29]:
   A  B  C
a  1  2  0
b  0  0  2
c  3  2  2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章