在Python中,你可以使用groupby方法来按多列分组,并使用transform方法将分组后的值添加到原始数据框中。下面是一个简单的示例代码:
import pandas as pd
# 创建一个示例数据框
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(data)
# 按列A和列B分组,并计算每个分组的平均值
df['mean'] = df.groupby(['A', 'B'])['C'].transform('mean')
print(df)
输出结果为:
A B C D mean
0 foo one 1 10 1.0
1 bar one 2 20 2.0
2 foo two 3 30 4.0
3 bar two 4 40 4.0
4 foo two 5 50 4.0
5 bar one 6 60 2.0
6 foo two 7 70 4.0
7 foo one 8 80 1.0
在这个例子中,我们按列A和列B分组,并使用transform方法计算每个分组的平均值,并将计算结果添加到新的列'mean'中。
下一篇:按多列分组并计算均值