Pandas。滚动指定时间窗口和win_type

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas。滚动指定时间窗口和win_type相关的知识,希望对你有一定的参考价值。

我想使用pandas在不规则的时间序列上使用时间窗来计算移动平均值。理想情况下,窗口应使用pandas.DataFrame.ewm进行指数加权,但参数(例如span)不接受基于时间的窗口。如果我们尝试使用pandas.DataFrame.rolling,我们意识到我们无法将基于时间的窗口与win_type结合起来。

dft = pd.DataFrame({'B': [0, 1, 2, 3, 4]},
                   index = pd.Index([pd.Timestamp('20130101 09:00:00'),
                                     pd.Timestamp('20130101 09:00:02'),
                                     pd.Timestamp('20130101 09:00:03'),
                                     pd.Timestamp('20130101 09:00:05'),
                                     pd.Timestamp('20130101 09:00:06')],
                                    name='foo'))
dft.rolling('2s', win_types='triang').sum()
>>> ValueError: Invalid window 2s

如何在不规则的时间序列中计算不等加权的基于时间的移动平均线?

dft.ewm(alpha=0.9, adjust=False).sum()窗口相关的'2s'的预期输出将是[0*1, 1*1, 2*1+1*0.9, 3*1, 4*1+3*0.9]

答案

这应该是有效的:

dft.rolling(2,freq='s' win_types='triang').sum()

以上是关于Pandas。滚动指定时间窗口和win_type的主要内容,如果未能解决你的问题,请参考以下文章

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动有效数值计数(rolling count)自定义指定滚动窗口的大小(window size)

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动加和值(rolling sum)自定义指定滚动窗口的大小(window size)

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动最小值(rolling minimum)自定义指定滚动窗口的大小(window size)

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动最大值(rolling maximum)自定义指定滚动窗口的大小(window size)

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动中位数(rolling median)自定义指定滚动窗口的大小(window size)

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动分位数值(rolling quantile)自定义指定滚动窗口的大小(window size)