从另一个Pandas系列中减去一个Pandas系列,而不为缺失的数据创建NaN值

Bil*_*ill 2 python series missing-data pandas

当您从另一个系列中减去一个系列时,如果第二个系列中没有要删除的记录,则结果包含NaN.

In [1]: import pandas as pd

In [2]: a = pd.Series({1: 100, 2: 102, 3: 103, 4: 104})

In [3]: a
Out[3]:
1    100
2    102
3    103
4    104
dtype: int64

In [4]: b = pd.Series({1: 5, 3: 7})

In [5]: a - b
Out[5]:
1    95.0
2     NaN
3    96.0
4     NaN
dtype: float64
Run Code Online (Sandbox Code Playgroud)

假设缺失数据等于零,是否有更简单的方法进行减法?除了手动插入这样的零:

In [15]: b_dash = pd.Series(b, index=a.index).fillna(0.0)

In [16]: a - b_dash
Out[16]:
1     95.0
2    102.0
3     96.0
4    104.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 6

运用 sub

a.sub(b,fill_value=0)
Out[213]: 
1     95.0
2    102.0
3     96.0
4    104.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)