我试图一起减去两个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
是否可以在保持代码简单的同时实现这一目标?
答案 0 :(得分:7)
您可以使用subtract
方法并指定fill_value
零:
A.subtract(B, fill_value=0)
注意:以下方法,combineAdd
,is deprecated从0.17.0开始。
一种方法是使用combineAdd
方法将-B
添加到A
:
>>> A.combineAdd(-B)
0
a -2
b 2
c -4
使用此方法,会添加两个DataFrame,并且非匹配索引处的值默认为A
或B
中的值。