pandas.DataFrame.resample的高斯核密度平滑?

use*_*387 3 python time-series resampling kernel-density pandas

pandas.DataFrame.resample用来重新采样随机事件到1小时的时间间隔,我看到非常随机的结果,如果我将间隔增加到2或4小时似乎没有消失.这让我想知道Pandas是否有任何类型的方法来生成平滑密度内核,如高斯核密度方法,带有可调节带宽来控制平滑.我没有在文档中看到任何内容,但我想在发布到开发人员列表服务器之前发布这里,因为这是他们的偏好.Scikit-Learn 正是我想要的高斯核密度函数,所以我会尝试使用它,但它会成为Pandas的绝佳补充.

任何帮助是极大的赞赏!

hourly[0][344:468].plot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

kb0*_*kb0 7

Pandas能够在滚动窗口上应用聚合.该win_type参数控制窗口的形状.该center参数可以按顺序设置为标签在窗口的中心被设置,而不是右边缘.做高斯平滑:

hrly = pd.Series(hourly[0][344:468])
smooth = hrly.rolling(window=5, win_type='gaussian', center=True).mean(std=0.5)
Run Code Online (Sandbox Code Playgroud)

http://pandas.pydata.org/pandas-docs/stable/computation.html#rolling


use*_*387 3

我现在发现这个选项可用pandas.stats.moments.ewma并且效果非常好。结果如下:

from pandas.stats.moments import ewma

hourly[0][344:468].plot(style='b')
ewma(hourly[0][344:468], span=35).plot(style='k')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 指数加权移动平均是一种实时(仅向后看)滤波器,与高斯核不同,高斯核是虚时间(向前和向后)。 (10认同)