使用 pandas 库中的 groupby() 方法按一列分组,再使用 rolling() 方法计算另一列的滚动平均值,最后使用 mean() 方法计算每个分组的平均值并生成新的列。
代码示例:
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'A', 'B', 'B', 'B'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 按 group 列分组,计算 value 列的滚动平均值
rolling_mean = df.groupby('group')['value'].rolling(2).mean().reset_index(level=0, drop=True)
# 将滚动平均值作为新列添加到原始数据中
df['rolling_mean'] = rolling_mean
print(df)
输出:
group value rolling_mean
0 A 1 NaN
1 A 2 1.5
2 A 3 2.5
3 B 4 NaN
4 B 5 4.5
5 B 6 5.5