下面是一个示例代码,演示了如何按多列分组,并应用移动函数:
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'A', 'B', 'B', 'B'],
'column1': [1, 2, 3, 4, 5, 6],
'column2': [7, 8, 9, 10, 11, 12]}
df = pd.DataFrame(data)
# 按group列分组,并对column1和column2应用移动平均函数
df['column1_avg'] = df.groupby('group')['column1'].rolling(window=2).mean().reset_index(level=0, drop=True)
df['column2_avg'] = df.groupby('group')['column2'].rolling(window=2).mean().reset_index(level=0, drop=True)
print(df)
输出结果如下:
group column1 column2 column1_avg column2_avg
0 A 1 7 NaN NaN
1 A 2 8 1.5 7.5
2 A 3 9 2.5 8.5
3 B 4 10 NaN NaN
4 B 5 11 4.5 10.5
5 B 6 12 5.5 11.5
在这个示例中,我们使用了Pandas库来处理数据。首先,创建一个DataFrame对象来存储数据。然后,我们使用groupby函数按group列进行分组,并对column1和column2应用rolling函数来计算移动平均值。最后,我们将结果存储在新的列column1_avg和column2_avg中。
请注意,我们使用了reset_index函数来删除分组索引,并使用drop=True参数来删除原始索引。这样可以确保结果与原始数据的索引对齐。
如果你想要应用其他的移动函数,可以在rolling函数中指定相应的函数名称,例如rolling(window=2).max()表示计算移动窗口内的最大值。
希望这个示例能帮到你!