Python/Pandas处理单列重复行 按机器分组求多字段平均值问题
实现代码
你可以直接使用Pandas的groupby分组聚合方法完成需求,首先确认你的数据表中机器编号、成本、温度、分钟对应的实际列名,替换下列代码中对应位置的字段即可:
import pandas as pd # 读取原始Excel数据 df = pd.read_excel('Model.xlsx', engine='openpyxl') # 方案1:基础聚合,直接计算指定列平均值 # 按机器编号分组,as_index=False保留机器编号为普通列而非索引 stat_result = df.groupby('机器编号', as_index=False)[['成本', '温度', '分钟']].mean() # 按需求保留1位小数,匹配你举例的精度要求 stat_result = stat_result.round(1) # 方案2:自定义聚合列名,同时支持统计记录条数等其他指标 # stat_result = df.groupby('机器编号', as_index=False).agg( # 平均成本=('成本', 'mean'), # 平均温度=('温度', 'mean'), # 平均分钟=('分钟', 'mean'), # 总记录数=('成本', 'count') # ).round(1) # 查看结果 print(stat_result) # 可导出为新Excel文件,index=False表示不导出pandas默认行索引 # stat_result.to_excel('机器指标统计结果.xlsx', index=False, engine='openpyxl')
说明
如果执行后出现列名不存在的报错,只需要将代码中机器编号、成本、温度、分钟替换为你实际表格里的列名即可。如果需要计算其他指标的聚合值,也可以在agg方法中追加对应的配置。
内容的提问来源于stack exchange,提问作者Elle Oliver
相关产品推荐
相关产品推荐

