Pandas文档列出了一堆“扩展窗口函数”:http://pandas.pydata.org/pandas-docs/version/0.17.0/api.html#standard-expanding-window-functions但我不知道他们从文档中做了什么。它们是否等同于滚动函数,但降低了NA值?
yjghlzjz1#
您可能想阅读此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
deyfvvtc2#
总结一下滚动和扩展功能的区别:在滚动函数中,窗口大小保持不变,而在扩展函数中,窗口大小发生变化。例如:假设你想预测天气,你有100天的数据:1.滚动:假设窗口大小为10。对于第一次预测,它将使用(前)10天的数据并预测第11天。对于下一次预测,它将使用第2天(数据点)到第11天的数据。
代码示例:
sums = series.expanding(min_periods=2).sum()
series包含时间序列上先前下载的应用程序的数量的数据。上面写的代码行总和所有下载的应用程序的数量,直到那个时候。注意:min_periods=2意味着我们至少需要2个以前的数据点来聚合。我们这里的总和是。
series
min_periods=2
gmxoilav3#
Uber的这些插图很好地解释了这些概念:
展开窗口
推拉窗
原文:https://eng.uber.com/omphalos/
ncecgwcz4#
expanding函数类似于cumsum,cumprod,cummin等累积函数,但expanding中的前n个值可以跳过。如果我们将参数min_periods设置为1并且不跳过任何值,那么.expanding(1).sum()和.cumsum()得到的结果相同。以下是滚动、扩展和累积总和之间的比较:
expanding
cumsum
cumprod
cummin
min_periods
.expanding(1).sum()
.cumsum()
col rolling(3).sum() expanding(3).sum() cumsum() 0 10 NaN NaN 10 1 20 NaN NaN 10+20 2 30 10+20+30 10+20+30 10+20+30 3 40 20+30+40 10+20+30+40 10+20+30+40 4 50 30+40+50 10+20+30+40+50 10+20+30+40+50 5 60 40+50+60 10+20+30+40+50+60 10+20+30+40+50+60
请注意,在rolling和expanding这两种情况下,我们从第三行开始,因为我们的窗口大小为3,并且我们需要至少3个值进行第一次计算(在此之前的所有行都得到NaN)。滚动窗口的大小保持不变,每次迭代后窗口向下移动一步。相反,扩展窗口不会移动,而是通过在每次迭代后添加下一个值来增加其大小,如cumsum。
rolling
NaN
4条答案
按热度按时间yjghlzjz1#
您可能想阅读此Pandas文档:
滚动统计的一种常见替代方法是使用扩展窗口,该窗口将生成统计值,其中包含截至该时间点的所有可用数据。
它们遵循与.rolling类似的接口,.expanding方法返回Expanding对象。
由于这些计算是滚动统计的特殊情况,因此它们在pandas中实现,因此以下两个调用是等效的:
deyfvvtc2#
总结一下滚动和扩展功能的区别:在滚动函数中,窗口大小保持不变,而在扩展函数中,窗口大小发生变化。
例如:假设你想预测天气,你有100天的数据:
1.滚动:假设窗口大小为10。对于第一次预测,它将使用(前)10天的数据并预测第11天。对于下一次预测,它将使用第2天(数据点)到第11天的数据。
代码示例:
series
包含时间序列上先前下载的应用程序的数量的数据。上面写的代码行总和所有下载的应用程序的数量,直到那个时候。注意:
min_periods=2
意味着我们至少需要2个以前的数据点来聚合。我们这里的总和是。gmxoilav3#
Uber的这些插图很好地解释了这些概念:
展开窗口
推拉窗
原文:https://eng.uber.com/omphalos/
ncecgwcz4#
expanding
函数类似于cumsum
,cumprod
,cummin
等累积函数,但expanding
中的前n个值可以跳过。如果我们将参数min_periods
设置为1并且不跳过任何值,那么.expanding(1).sum()
和.cumsum()
得到的结果相同。以下是滚动、扩展和累积总和之间的比较:请注意,在
rolling
和expanding
这两种情况下,我们从第三行开始,因为我们的窗口大小为3,并且我们需要至少3个值进行第一次计算(在此之前的所有行都得到NaN
)。滚动窗口的大小保持不变,每次迭代后窗口向下移动一步。相反,扩展窗口不会移动,而是通过在每次迭代后添加下一个值来增加其大小,如cumsum
。