在使用groupby的滚动方法中更改win_type(bartlett,triang等)参数时,它仍然可以用作参数的None值
我检查了没有groupby代码的情况是否很好
# create example dataframe
df_test = pd.DataFrame({'A':[0,1]*10, 'B':[0, 5, 0,2,0,3,0,8,0,0,0,6,0,12,0,8,0,11,0,10]})
# Do rolling
df_test['C'] = df_test.groupby(['A',])['B'].rolling(window=3, center=True, win_type='bartlett').mean().droplevel(0)
df_test['D'] = df_test.groupby(['A',])['B'].rolling(window=3, center=True, win_type=None).mean().droplevel(0)
# Get this. As yoг can see columns are the same
A B C D
0 0 0 NaN NaN
1 1 5 NaN NaN
2 0 0 0.000000 0.000000
3 1 2 3.333333 3.333333
4 0 0 0.000000 0.000000
5 1 3 4.333333 4.333333
6 0 0 0.000000 0.000000
7 1 8 3.666667 3.666667
8 0 0 0.000000 0.000000
9 1 0 4.666667 4.666667
10 0 0 0.000000 0.000000
11 1 6 6.000000 6.000000
12 0 0 0.000000 0.000000
13 1 12 8.666667 8.666667
14 0 0 0.000000 0.000000
15 1 8 10.333333 10.333333
16 0 0 0.000000 0.000000
17 1 11 9.666667 9.666667
18 0 0 NaN NaN
19 1 10 NaN NaN
#Check what it should be
df_test[df_test.A==1]['B'].rolling(window=3, center=True, win_type='bartlett').mean()
1 NaN
3 2.0
5 3.0
7 8.0
9 0.0
11 6.0
13 12.0
15 8.0
17 11.0
19 NaN
df_test[df_test.A==1]['B'].rolling(window=3, center=True, win_type=None).mean()
1 NaN
3 3.333333
5 4.333333
7 3.666667
9 4.666667
11 6.000000
13 8.666667
15 10.333333
17 9.666667
19 NaN
所以我想得到'bartlett'结果或理解为什么win_type参数不能与groupby一起使用。
此外,我可以将切片和滚动结合使用一个循环,但这并不是应该做的事情。