我想按组来计算一个值的标准差,但是我得到了意外的结果。有人可以帮忙吗?
from numpy import nan
df = {'value': {1: nan, 2: nan, 3: nan, 4: nan, 5: nan, 6: nan, 7: nan, 8: nan, 9: nan, 10: 0.1, 11: 0.3, 12: 0.6, 13: 0.2, 14: -0.1, 15: 0.2}}
df = pd.DataFrame.from_dict(df)
df['group'] = [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1]
df['rolling_std'] = df.groupby('group')['value'].rolling(3).std().values
df.head(15)
value group rolling_std
1 NaN 1 NaN
2 NaN 2 NaN
3 NaN 1 NaN
4 NaN 2 NaN
5 NaN 1 NaN
6 NaN 2 NaN
7 NaN 1 NaN
8 NaN 2 0.057735 # here I expect NaN since all values from group 2 are NaN so far
9 NaN 1 NaN
10 0.1 2 NaN
11 0.3 1 NaN
12 0.6 2 NaN
13 0.2 1 NaN
14 -0.1 2 NaN
15 0.2 1 0.360555