python - pandas groupby 中非空值的移位和滚动平均值

标签 python pandas aggregation

我正在寻找一种方法来根据每组过去 n 天的非空值的平均值生成移动窗口。

例如,如果移动窗口大小为 3,我想根据每个 ct 列中的非空值生成列 MovAvg>分组(即具有滞后效应)。

Date    Group   ct      MovAvg
1/1/71  A   NaN NaN
2/1/71  A   1   NaN
3/1/71  A   NaN NaN
4/1/71  A   NaN 1
5/1/71  A   1   1
6/1/71  A   NaN 1
7/1/71  A   0   1
8/1/71  A   NaN 0.5
9/1/71  A   NaN 0
10/1/71 A   1   0
11/1/71 A   0   1
1/1/71  B   NaN NaN
2/1/71  B   1   NaN
3/1/71  B   NaN NaN
4/1/71  B   NaN 1
5/1/71  B   0   1
6/1/71  B   1   0
7/1/71  B   1   0.5
8/1/71  B   NaN 0.67
9/1/71  B   NaN 1
10/1/71 B   1   1
11/1/71 B   0   1

最佳答案

  df['MovAvg'] = df['ct'].groupby(df['Group']).rolling(3, min_periods=1).mean().shift()

关于python - pandas groupby 中非空值的移位和滚动平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55955465/

相关文章:

python - PyUSB属性错误: 'int' object has no attribute 'enumerate_devices'

python - 不需要的空白导致列扭曲

scala - 如何计算 Spark 中每位客户在 12 个月内按 1 个月滑动的订单总和

ElasticSearch extended_bounds 最小最大

python - 如何在 Python 中的单独线程中启动 win32 应用程序

python - 如何将 Pandas 系列字符串转换为包含 1970 年之前日期的非标准格式的 Pandas 日期时间

python - str.split 给出 direct 和 read_csv 不同的结果

python - Pandas - 获取日期和当前时间之间的营业时间

MongoDB:如何将所有文档合并到聚合管道中的单个文档中

python - Pandas 数据框导出到 excel 导致 TypeError