2015-02-09 102 views
5

我试图将两个数据帧一起减去。我想当作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 

是否可以在保持代码简单的同时获得该代码?

回答

5

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

A.subtract(B, fill_value=0) 

注:下面的方法,combineAddis deprecated从0.17.0或更新版本开始

的一种方式是使用combineAdd方法添加-BA

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

利用这种方法,加到两个DataFrames并在值不匹配的索引默认为值要么AB