我正在尝试将两个 DataFrame 相减。我想将缺失值视为 0。fillna()
在这里不起作用,因为在进行减法之前我不知道公共(public)索引:
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
是否有可能在保持代码简单的同时实现这一目标?
最佳答案
您可以使用 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
中的值。
关于python - 减去两个索引不重叠的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421137/