繁体   English   中英

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

[英]Gaussian kernel density smoothing for pandas.DataFrame.resample?

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

任何帮助是极大的赞赏!

hourly[0][344:468].plot()

在此处输入图片说明

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)

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

我现在发现这个选项在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')

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM