使用非重叠索引减去两个DataFrame

时间:2015-02-09 23:00:56

标签: python pandas dataframe subtraction

我试图一起减去两个DataFrame。我想将缺失值视为0. fillna()在这里不能工作,因为在进行减法之前我不知道常用索引:

import pandas as pd

A = pd.DataFrame([1,2], index=['a','b'])
B = pd.DataFrame([3,4], index=['a','c'])
A - B

    0
a  -2
b NaN
c NaN

理想情况下,我希望:

A - B

    0
a  -2
b   2
c  -4

是否可以在保持代码简单的同时实现这一目标?

1 个答案:

答案 0 :(得分:7)

您可以使用subtract方法并指定fill_value零:

A.subtract(B, fill_value=0)

注意:以下方法,combineAddis deprecated从0.17.0开始

一种方法是使用combineAdd方法将-B添加到A

>>> A.combineAdd(-B)
   0
a -2
b  2
c -4

使用此方法,会添加两个DataFrame,并且非匹配索引处的值默认为AB中的值。