什么是熊猫"扩大窗口"的功能?

Dee*_*ena 16 pandas

Pandas文档列出了一堆"扩展窗口函数":

http://pandas.pydata.org/pandas-docs/version/0.17.0/api.html#standard-expanding-window-functions

但我无法弄清楚他们从文档中做了什么.

Max*_*axU 23

您可能想要阅读此Pandas文档:

滚动统计数据的常见替代方法是使用展开窗口,该窗口生成统计信息的值,其中包含截至该时间点的所有可用数据.

它们遵循与.rolling类似的接口,.expanding方法返回一个Expanding对象.

由于这些计算是滚动统计的特例,因此它们在pandas中实现,以便以下两个调用是等效的:

In [96]: df.rolling(window=len(df), min_periods=1).mean()[:5]
Out[96]: 
                   A         B         C         D
2000-01-01  0.314226 -0.001675  0.071823  0.892566
2000-01-02  0.654522 -0.171495  0.179278  0.853361
2000-01-03  0.708733 -0.064489 -0.238271  1.371111
2000-01-04  0.987613  0.163472 -0.919693  1.566485
2000-01-05  1.426971  0.288267 -1.358877  1.808650

In [97]: df.expanding(min_periods=1).mean()[:5]
Out[97]: 
                   A         B         C         D
2000-01-01  0.314226 -0.001675  0.071823  0.892566
2000-01-02  0.654522 -0.171495  0.179278  0.853361
2000-01-03  0.708733 -0.064489 -0.238271  1.371111
2000-01-04  0.987613  0.163472 -0.919693  1.566485
2000-01-05  1.426971  0.288267 -1.358877  1.808650
Run Code Online (Sandbox Code Playgroud)

  • 它实际上非常有用,因为滚动操作适用于固定的窗口大小.但是,此操作是扩大窗口大小.它以长度为1个周期的"滚动"窗口开始,下一个窗口大小为2个周期,然后是3,4,5等.对于流数据,原始数据帧全长的滚动窗口将开始丢弃第一个几个观察,而扩展窗口允许您添加新数据. (6认同)
  • 所以这是一个滚动操作,窗口是数据帧的全长。我不明白为什么需要一个单独的功能... (2认同)

Dee*_*ena 20

优步的那些插图很好地解释了这些概念:

展开窗口 在此处输入图片说明

滑动窗口

在此处输入图片说明

原文:https : //eng.uber.com/omphalos/


Anu*_*rma 19

在一行中总结滚动和扩展函数之间的区别:在滚动函数中,窗口大小保持不变,而在扩展函数中,它会发生变化。

示例:假设您要预测天气,您有 100 天的数据:

  1. 滚动:假设窗口大小为 10。对于第一次预测,它将使用(前一个)10 天的数据并预测第 11 天。对于下一次预测,它将使用第 2 天(数据点)到第 11 天的数据。

  2. 扩展:对于第一次预测,它将使用 10 天的数据。但是,对于第二次预测,它将使用10 + 1 天的数据。窗口因此“扩大了”。

    • 窗口大小在后面的方法中不断扩大。

代码示例:

sums = series.expanding(min_periods=2).sum()
Run Code Online (Sandbox Code Playgroud)

series包含时间序列中先前下载的应用程序数量的数据。上面编写的代码行总结了到那时为止下载的所有应用程序数量。

注意:min_periods=2意味着我们需要至少 2 个先前的数据点来聚合。我们这里的总和是总和。