【发布时间】:2020-07-01 01:33:30
【问题描述】:
我希望能够根据在单独列中标记为 True 的值对数据列执行滚动平均值。下面是一个示例数据集。
Data Condition
2020-01-01 0:00 2.0 False
2020-01-01 0:01 2.0 False
2020-01-01 0:02 732.1 True
2020-01-01 0:03 734.2 True
2020-01-01 0:04 733.3 True
2020-01-01 0:05 731.2 True
2020-01-01 0:06 2.0 False
2020-01-01 0:07 2.0 False
...
2020-06-15 23:52 2.0 False
2020-06-15 23:53 732.1 True
2020-06-15 23:54 734.2 True
2020-06-15 23:55 733.3 True
2020-06-15 23:56 731.2 True
2020-06-15 23:57 2.0 False
2020-06-15 23:58 2.0 False
2020-06-15 23:59 2.0 False
对于数据列,我的预期输出(窗口大小为 3)如下:
[2.0, 2.0, 733.15, 733.2, 732.9, 732.25, 2, 2, ..., 2.0, 733.15, 733.2, 732.9, 732.25, 2.0, 2.0, 2.0]。
所以本质上,对于每一行,它会取该行上方和下方行的平均值,以及有问题的行,但总是排除错误时的数字。
这是我找到的一些代码,只是它不适用于当前的 pandas。
pandas.rolling_mean(df[df.Condition], window=30)
我在这里找到了它:Conditional mean by rolling
任何有关这方面的帮助或信息将不胜感激!
【问题讨论】:
-
在这种情况下,您的预期输出是什么,比如
window=3? -
我的预期输出是 [2.0, 2.0, 733.15, 733.2, 732.9, 732.25, 2, 2, ..., 2.0, 733.15, 733.2, 732.9, 732.25, 2.0, 2.0, 2.0]对于这种情况。
-
@wes.e 在问题中添加您的预期输出,以便更容易回答,并帮助通过 google 找到此问题的人。
-
当然,没问题。
标签: python pandas rolling-computation