6

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

任何帮助是极大的赞赏!

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

在此处输入图像描述

4

2 回答 2

10

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

于 2017-05-18T21:10:43.667 回答
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')

在此处输入图像描述

于 2014-11-24T07:36:46.617 回答