首页 > 解决方案 > 如何使用 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 次,取三个数字的平均值

在此处输入图像描述

怎么做到呢?

标签: pythonpython-3.xpandasmean

解决方案


您可以使用加权滚动平均方法来做到这一点:

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))

推荐阅读