你怎么告诉熊猫在计算平均值时忽略NaN值?在极短的时间内,当熊猫遇到一个单一的NaN时,它将返回一些min_periods的NaN。
示例:
pd.DataFrame({ 'x': [np.nan, 0, 1, 2, 3, np.nan, 5, 6, 7, 8, 9]}).rolling(3, min_periods = 3).mean()结果:
-1 NaN
0 NaN
1 NaN
2 1.0
3 2.0
4 NaN
5 NaN
6 NaN
7 6.0
8 7.0
9 8.0预期结果:
-1 NaN
0 NaN
1 NaN
2 1.0
3 2.0
4 2.0
5 3.3
6 4.6
7 6.0
8 7.0
9 8.0发布于 2022-04-07 20:21:18
您想先放下np.nan,然后再滚动意味着。然后,使用原始索引重新编制索引,并向前填充值来填充np.nan。
df.x.dropna().rolling(3).mean().reindex(df.index, method='pad')
0 NaN
1 NaN
2 NaN
3 1.000000
4 2.000000
5 2.000000
6 3.333333
7 4.666667
8 6.000000
9 7.000000
10 8.000000
Name: x, dtype: float64https://stackoverflow.com/questions/71788354
复制相似问题