dataframe对数据进行分组求和并合并数据算出均值
时间: 2024-02-05 20:04:53 浏览: 130
Python 对DataFrame数据分组并排序并选择最优数据
假设有一个包含三列数据的DataFrame,分别是"Name"、"Gender"和"Score",需要对"Gender"进行分组,对"Score"进行求和,并计算每个组的平均值,最后将平均值合并到原始DataFrame中。可以使用如下代码实现:
```
import pandas as pd
# 创建DataFrame
data = {'Name': ['Tom', 'Jerry', 'Mike', 'Lucy', 'Lily'],
'Gender': ['M', 'M', 'F', 'F', 'F'],
'Score': [80, 90, 85, 75, 95]}
df = pd.DataFrame(data)
# 按Gender分组,对Score求和并计算平均值
grouped = df.groupby('Gender')
result = grouped['Score'].agg(['sum', 'mean']).reset_index()
# 将平均值合并到原始DataFrame中
df = pd.merge(df, result[['Gender', 'mean']], on='Gender', how='left')
df = df.rename(columns={'mean': 'MeanScore'})
print(df)
```
运行结果如下:
```
Name Gender Score MeanScore
0 Tom M 80 85.000000
1 Jerry M 90 85.000000
2 Mike F 85 85.000000
3 Lucy F 75 85.000000
4 Lily F 95 85.000000
```
可以看到,原始DataFrame中新增了一列"MeanScore",表示每个组的平均值。
阅读全文