问题出在两个地方:首先,创建的Series对象b没有设置数据类型,其次,rolling().sum()方法默认会忽略NaN值。
以下是解决方法的代码示例:
import pandas as pd
import numpy as np
b = pd.Series([np.nan, np.nan], dtype=float) # 设置数据类型为float
result1 = b.sum() # 结果为0
result2 = b.rolling(2).sum() # 结果为nan
print(result1)
print(result2)
输出结果:
0.0
0 NaN
dtype: float64
通过设置Series对象的数据类型为float,可以避免在计算sum()时出现问题。同时,通过rolling(2).sum()方法的结果是NaN,是因为在默认情况下,该方法会忽略NaN值,所以在这种情况下,结果会是NaN。