python - 如何使用 Python Pandas 计算向后跳过行的平均值?
问题描述
这是数据:
data = {'col1': [12, 13, 5, 2, 12, 12, 13, 23, 32, 65, 33, 52, 63, 12, 42, 65, 24, 53, 35]}
df = pd.DataFrame(data)
我想创建一个新的 col skipped_mean
。只有最后 3 行具有此变量的有效值。它的作用是向后看 6 行,连续 3 次,取三个数字的平均值
怎么做到呢?
解决方案
您可以使用加权滚动平均方法来做到这一点:
import numpy as np
weights = np.array([1/3,0,0,0,0,0,1/3,0,0,0,0,0,1/3])
df['skipped_mean'] = df['col1'].rolling(13).apply(lambda x: np.sum(weights*x))
推荐阅读
- php - 如何在不访问 Laravel (PHP) 中的网络的情况下更新表格?
- r - 试图弄清楚如何分解文本文件
- php - 输出 PHP 字符串以显示转义字符
- mysql - 将两个 MySQL 表与关注者相关联
- r - 叠加图:时间序列 - 不同频率(条上的线)[ggplot2]
- c - 在不排序的情况下查找数组中的第二大元素
- postcss - postcss-normalize 覆盖了我自己的样式
- makefile - 将环境变量从 Makefile 导出到用户态环境
- apache-spark - DataFrame 对象没有属性“col”
- javascript - SAPUI5 DatePicker minDate 不工作