You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Pandas中相同列值计算数值列的均值?

按分组计算均值并去重的Pythonic实现(Pandas)

直接用Pandas的groupby()+mean()就能搞定,这是处理这类分组聚合最简洁的Pythonic方式:

import pandas as pd

data = {
  "Name": ["John", "John", "Robert", "Robert", "Cindy", "Cindy", "Sarah", "Sarah"],
  "Score": [84, 45, 67, 87, 88, 100, 76, 91]
}

df = pd.DataFrame(data)

# 按Name分组计算Score均值,重置索引恢复标准DataFrame结构
result_df = df.groupby('Name')['Score'].mean().reset_index()

print(result_df)

运行后输出结果:

Name  Score
0   Cindy   94.0
1    John   64.5
2  Robert   77.0
3   Sarah   83.5

关键步骤说明

  • groupby('Name'):将DataFrame按Name列的唯一值自动分组,把相同Name的行归为一组
  • ['Score'].mean():针对每组的Score列计算平均值,自动忽略非数值列
  • reset_index():把分组后作为索引的Name转回普通列,得到结构规整的结果

如果需要同时计算多个聚合指标(比如均值+总和),可以用agg()方法扩展:

result_df = df.groupby('Name').agg(
    分数均值=('Score', 'mean'),
    分数总和=('Score', 'sum')
).reset_index()

这样输出会包含两个聚合列,更灵活适配复杂需求。

内容的提问来源于stack exchange,提问作者E_Sarousi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 12:20:32