pandas 熊猫滚动应用缺失数据

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13405611/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-13 20:29:38  来源:igfitidea点击:

Pandas rolling apply with missing data

pythonpandasmissing-datarolling-computation

提问by Mahesh

I want to do a rolling computation on missing data.

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

Sample Code: (For sake of simplicity I'm giving an example of a rolling sum but I want to do something more generic.)

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

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)

which produces:

它产生:

0   NaN    
1   NaN
2     3    
3     6    
4     9    
5    12    
6   NaN    
7   NaN    
8   NaN    
9    24

I think that during the "rolling", window with missing data is being ignored for computation. I'm looking to get a result along the lines of:

我认为在“滚动”期间,缺少数据的窗口被忽略以进行计算。我希望得到以下结果:

0   NaN    
1   NaN    
2     3    
3     6    
4     9    
5    12    
6     9    
7    12    
8    15    
9    24

回答by Chang She

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