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

如何用Python对Excel数据按title与pc分组计算统计均值?

Excel数据分组求均值的正确Python实现方案

需求说明

处理Excel数据时,需按以下逻辑操作:

  • 先匹配第1列(title)内容,再在同title组内匹配第2列(pc)内容
  • 将title与pc均一致的行归为一组,计算每组内Min、Max、Avg、Std_dev列的均值
  • 输出符合指定格式的结果

数据示例

title  pc  rd/wr           Min Max     Avg Std_dev
   1 Test_1 PC0 Write Latency   88  1838    634 297
   2 Test_1 PC1 Write Latency   92  2363    661 369
   3 Test_2 PC0 Write Latency   90  1524    576 273
   4 Test_2 PC1 Write Latency   94  1526    568 267
   5 Test_1 PC0 Write Latency   90  1850    623 287
   6 Test_1 PC1 Write Latency   89  2403    678 356
   7 Test_2 PC0 Write Latency   88  1530    579 277
   8 Test_2 PC1 Write Latency   87  1500    587 275

你的错误代码

import pandas as pd
df = pd.read_excel('Report_testing.xlsx')
col = []
row = []
for line in df:
    col = line.split()
    if row[i] == col[j]:

预期输出

Test_1  PC0 Write Latency   89    1844  628.5   292
Test_1  PC1 Write Latency   90.5  2383  669.5   362.5
Test_2  PC0 Write Latency   89    1527  577.5   275
Test_2  PC1 Write Latency   90.5  1513  577.5   271

正确实现代码

Pandas内置的groupby方法可以直接完成分组聚合,不需要手动循环判断,代码简洁高效:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('Report_testing.xlsx')

# 按title和pc组合分组,计算指定列的均值
result = df.groupby(['title', 'pc'])[['Min', 'Max', 'Avg', 'Std_dev']].mean().reset_index()

# 按预期格式输出,调整浮点数显示格式
print(result.to_string(index=False, float_format='%.1f'))

代码说明

  1. 分组逻辑:groupby(['title', 'pc'])会将title和pc完全相同的行归为一组,精准匹配你的需求
  2. 聚合计算:[['Min', 'Max', 'Avg', 'Std_dev']].mean()对每组的指定数值列计算均值
  3. 格式调整:reset_index()将分组索引转为普通列,float_format='%.1f'确保浮点数显示一位小数,和预期输出格式对齐

运行后输出结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:51:17