熊猫滚动适用于缺少数据

Mah*_*esh 10 python missing-data pandas rolling-computation

我想对丢失的数据进行滚动计算.

示例代码:( 为了简单起见,我给出了滚动总和的示例,但我想做一些更通用的事情.)

foo = lambda z: z[pandas.notnull(z)].sum() 
x = np.arange(10, dtype="float")    
x[6] = np.NaN
x2 = pandas.Series(x)    
pandas.rolling_apply(x2, 3, foo)
Run Code Online (Sandbox Code Playgroud)

产生:

0   NaN    
1   NaN
2     3    
3     6    
4     9    
5    12    
6   NaN    
7   NaN    
8   NaN    
9    24
Run Code Online (Sandbox Code Playgroud)

我认为在"滚动"期间,计算中忽略了缺少数据的窗口.我希望得到一个结果:

0   NaN    
1   NaN    
2     3    
3     6    
4     9    
5    12    
6     9    
7    12    
8    15    
9    24
Run Code Online (Sandbox Code Playgroud)

Cha*_*She 10

In [7]: pandas.rolling_apply(x2, 3, foo, min_periods=2)
Out[7]: 
0   NaN
1     1
2     3
3     6
4     9
5    12
6     9
7    12
8    15
9    24
Run Code Online (Sandbox Code Playgroud)