计算熊猫的连续滚动平均值作为数组函数?

独狼

我正在尝试使用熊猫中的NaN在数据框上计算滚动平均值,但是当熊猫遇到NaN时,熊猫似乎会重置窗口,例如听到一些代码...

import numpy as np
from pandas import *

foo = DataFrame(np.arange(0.0,13.0))
foo['1'] = np.arange(13.0,26.0)
foo.ix[4:6,0] = np.nan
foo.ix[4:7,1] = np.nan
bar = rolling_mean(foo, 4)

给出滚动平均值,该滚动平均值将在每个NaN之后重置窗口,而不仅仅是跳过NaN

bar = 
       0     1
0    NaN   NaN
1    NaN   NaN
2    NaN   NaN
3    1.5  14.5
4    NaN   NaN
5    NaN   NaN
6    NaN   NaN
7    NaN   NaN
8    NaN   NaN
9    NaN   NaN
10   8.5   NaN
11   9.5  22.5
12  10.5  23.5

我发现一个丑陋的iter / dropna()解决了正确的答案

def sparse_rolling_mean(df_data, window):
     ...:     f_data = DataFrame(np.nan,index=df_data.index, columns=df_data.columns)
     ...:     for i in f_data.columns:
     ...:         f_data.ix[:,i] = rolling_mean(df_data.ix[:,i].dropna(),window)
     ...:     return f_data

bar = sparse_rolling_mean(foo,4)

bar
        0     1
0     NaN   NaN
1     NaN   NaN
2     NaN   NaN
3    1.50  14.5
4     NaN   NaN
5     NaN   NaN
6     NaN   NaN
7    3.25   NaN
8    5.00  16.5
9    6.75  18.5
10   8.50  20.5
11   9.50  22.5
12  10.50  23.5

有谁知道是否可以作为数组函数来执行此操作?提前谢谢了。

贝扎德·诺里

您可以这样做:

>>> def sparse_rolling_mean(ts, window):
...     return rolling_mean(ts.dropna(), window).reindex_like(ts)
... 
>>> foo.apply(sparse_rolling_mean, args=(4,))
        0     1
0     NaN   NaN
1     NaN   NaN
2     NaN   NaN
3    1.50  14.5
4     NaN   NaN
5     NaN   NaN
6     NaN   NaN
7    3.25   NaN
8    5.00  16.5
9    6.75  18.5
10   8.50  20.5
11   9.50  22.5
12  10.50  23.5

[13 rows x 2 columns]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在熊猫中获得连续的滚动平均值?

来自分类Dev

计算每组熊猫df的滚动平均值

来自分类Dev

在 Python 中计算作为距中心距离的函数的 2D 数组的平均值

来自分类Dev

如何计算C#数组列表的滚动平均值?

来自分类Dev

函数计算平均值

来自分类Dev

连续计算值的平均值?

来自分类Dev

使我的函数计算数组Swift的平均值

来自分类Dev

python panda计算滚动平均值

来自分类Dev

计算n天滚动平均值

来自分类Dev

计算滚动 180 天平均值

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

熊猫-计算时间戳的平均值

来自分类Dev

使用熊猫计算累积平均值

来自分类Dev

熊猫-无法计算移动平均值

来自分类Dev

熊猫:如何计算分组平均值

来自分类Dev

熊猫计算每小时平均值

来自分类Dev

用熊猫计算每日平均值

来自分类Dev

用大熊猫的整数天计算滚动平均值

来自分类Dev

如何使用自定义权重计算熊猫的滚动平均值?

来自分类Dev

如何使用熊猫在GroupBy对象上计算滚动平均值?

来自分类Dev

数据帧具有多个索引时的熊猫滚动平均值计算

来自分类Dev

使用函数计算平均值

来自分类Dev

使用函数计算平均值

来自分类Dev

If函数过滤并计算平均值

来自分类Dev

计算NumPy中数组的平均值

来自分类Dev

从JavaScript数组计算平均值

来自分类Dev

计算数组的平均值

来自分类Dev

从数组中读取并计算平均值

来自分类Dev

计算数组c ++的平均值