问题标签 [pandas-rolling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
241 浏览

python - Pandas 滚动时间窗口因字符串计数而失败 - 为什么?

尝试使用带有 timeindex 和 count() 方法的 pandas 滚动,出现错误,我在这里缺少什么?

这是一个例子:

得到这个:

0 投票
1 回答
303 浏览

python - pct_change 的解决方法不能在 Pandas 中使用 .rolling()?

我有一个超过 2 毫米行的数据框。它具有过去 20 年标准普尔 500 指数中所有股票的调整后收盘价(因此,公司/股票代码的混合)。底部是我的数据框的快照。我将把这些数据放入一个预测模型中,该模型使用各种动量列作为其特征,它将尝试预测一只股票是否可能有 6% 以上的月回报率。然而,生产适当的“动量柱”被证明是困难的。

“one_month_6_pct+_gain”列是我的目标,它源自“21_day_performance”列。我的动量列无法“看到”该数据。

下面的代码用于生成使用当前行(我不必移动)中的信息的列。

但是,当我尝试创建基于前几天的 adj_close 的新列时(没有“看到”我之前提到的 21 天的日子),我遇到了各种问题。

这很接近,但是在这里使用“sum()”是不正确的。如果一只股票在第一天的交易价格为 20 美元,而在第二天上涨 100%,它将达到 40 美元。但是,如果它在第三天下跌 100%,它将是 0 美元,而不是 20 美元。所以,在这里求和是不正确的。但它与我得到的工作代码一样接近。

我认为如果在rolling()之后支持pct_change(),下面的方法会起作用。但是,我得到“'RollingGroupby' 对象没有属性 'pct_change'”

下面抛出一个错误。“TypeError:不支持的操作数类型 -:'RollingGroupby' 和 'RollingGroupby'”

下面是接近的,但是,它给出了 21 到 26 之间 5 天的“twenty_one_day_performance”的否定/相反值。我希望它在这 5 天中给出 0.0。

下面也很接近,但是,由于 df 中有 500 只不同的股票,当一只股票结束而另一只股票开始时,这是一个问题。在您考虑重叠股票/股票代码问题之前,以下工作。我不知道如何让 groupby 在这里工作。

我的数据框的一个小样本:

​</p>

0 投票
2 回答
1497 浏览

python - ModuleNotFoundError:没有名为“pandas._libs.tslibs.frequencies”的模块

我在这里这里发现了几个关于同一问题的问题

我收到以下错误:

我尝试卸载并重新安装熊猫版本 1.1.3、1.1.2、1.1.1,但它们都不起作用,我只是得到同样的错误,然后我尝试以以下方式构建熊猫:

我仍然得到同样的错误

0 投票
0 回答
46 浏览

python - 当输入是列表时,为什么 pd.df.rolling.aggregate 需要更长的时间?

我正在使用 python 3.8.3 和 pandas 1.1.5。

table_in.T是一个 18 x 209997 的熊猫数据框。window并且periods都设置为12。

以下三行代码分别运行了 9.52s、6.27s 和 5min53s。

为什么通过 sum 和 mean 将滚动对象聚合在一起比单独聚合它们需要更长的时间?

0 投票
0 回答
65 浏览

python - 应用滚动功能返回无值熊猫

我有一个看起来像这样的数据框 temps

在此处输入图像描述

我正在尝试应用 1 的移位,然后应用带有窗口 2 的滚动函数,最后取滚动数据框的平均值,请参阅下面的代码以供参考,

但我收到如下错误:

DataError:没有要聚合的数字类型

当我打印窗口时,我得到如下输出“:

在此处输入图像描述

有人可以告诉我为什么我在计算滚动输出的 mean() 时收到 DataError 吗?滚动功能在这里使用正确吗?

0 投票
0 回答
56 浏览

pandas - 带有 FixedForwardWindowIndexer 的 Pandas groupby 使内核在小型 DataFrame 中崩溃

给定 2 个组,我想取同一组中 3 个元素的滑动窗口平均值。此外,我希望滑动窗口向前看,而不是向后看。以下是我执行上述操作的代码:

期望的结果应该是

在 kaggle 笔记本和 Spyder 中,我的内核在运行第一块代码时就死了。我的桌面有带有 Ubuntu 的 pandas 1.1.3。

这有几件事很奇怪:

  1. 运行最后一行有时不会使内核崩溃。如果是这种情况,第二次或第三次运行它会使内核崩溃。
  2. 运行最后一行rolling(3)永远不会使内核崩溃。
  3. 只是在df.groupby('groups')['info'].rolling(window=indexer).mean().values没有为其输出分配变量的情况下运行永远不会使内核崩溃。

我会称这是一个错误,但这意味着FixedForwardWindowIndexer我没有更深入的了解。有没有什么方法可以得到想要的结果,而不会导致像反转数据框和使用这样的黑客攻击rolling(3)?谢谢您的帮助。

0 投票
2 回答
57 浏览

python - Pandas groupby 滚动获取未来值

我正在尝试使用带有 groupby 的窗口大小为 2 的熊猫滚动功能。除了我还希望窗口包含当前值和进行值之外,这将是非常标准的。

具体来说,给定

我想

我尝试了 2 种策略,但都没有奏效。我第一次尝试

这种方式会导致内核崩溃,即使对于这个玩具数据框也是如此。非常好奇为什么。
我的第二种方法是反转数据框,然后使用常规的 groupby 滚动操作:

虽然使用这种方法内核不会崩溃,但它不会产生我希望的数据帧;它产生

我想这里有一个我不知道的明显解决方案。任何帮助表示赞赏!

0 投票
0 回答
61 浏览

python - 具有自适应窗口大小的移动平均

我有一个df包含两列x的DataFrame y,我想将其绘制为线图,如下所示:

结果图如下所示:

在此处输入图像描述

可以看出,具有较低x值的数据点要多得多,即随着x值的增加,数据点越来越少。因此,使用固定窗口大小为 1000 的滚动平均值会为大 x 值平均太多数据点,而为低 x 值平均数据点太少。

是否有可能使滚动平均值的窗口随着更大的 x 值而减小或适应数据点的数量?或者对于这种数据是否存在比滚动平均值更好的方法?

0 投票
1 回答
152 浏览

pandas - Pandas groupby 滚动删除索引列

不确定我是否做错了什么(Pandas 1.2.5):

我希望结果包括 Date 列(否则为什么要计算滚动平均值?)但 Date 不存在:

我错过了什么?

此外,df['Val'].reset_index('Id').groupby('Id').rolling(window=3).mean()似乎以某种方式工作,但即使在 groupby 中传递,Id也会作为数据列和索引列返回。as_index=False很奇怪!

0 投票
1 回答
42 浏览

python - 在 python 的新列中计算一个时间窗口内的类别重复项(类似于使用 value_counts 滚动)

我一直在尝试解决一个练习,但我一直没能做到,我有一个数据集,其中包含一个带有呼叫主题的呼叫列表(在这个示例数据集中,我决定使用冰淇淋口味作为主题),在呼叫中心,如果使用 72 小时的时间窗口在另一个呼叫中未提及该主题,则他们认为该主题已在第一次解决。我需要在数据框中创建一个新列,该列计算在 72 小时的窗口内提到该行中冰淇淋风味的次数(计算一个时间窗口内事件的发生次数)。

我看到了一个使用 get_dummies 的解决方案,但这对我来说效率很低,因为我有 300 多种冰淇淋口味:

滚动时间窗口上的熊猫`value_counts`

以下是我拥有的数据示例:

这是预期的结果:

我发现了一些类似的问题,但并没有完全解决我的需求:

按时间和熊猫中的其他列分组

使用时间滚动计数熊猫分类变量

在熊猫中,如何在移动窗口的基础上计算“Countif”?