使用Python Pandas统计CSV中设备出现次数并按唯一设备聚合数据
解决方案
你可以直接使用pandas的groupby + agg方法一步完成按唯一设备的多指标聚合,无需提前新增转换列,实现代码如下:
import pandas as pd df = pd.read_csv('CSV PATH') df['Timestamp'] = pd.to_datetime(df['Timestamp']) # 按唯一设备聚合,同时计算总营收和总使用次数 machine_final_stats = df.groupby('Machine Name', as_index=False).agg( Total_Revenue = ('Total Revenue', 'sum'), Machine_Use_Count = ('Machine Name', 'count') ) # 调整列名匹配你期望的输出格式 machine_final_stats.columns = ['Machine Name', 'Total Revenue', 'Machine Use Count'] # 输出结果 print(machine_final_stats)
如果你已经提前在原DataFrame里新增了Machine Use Count列,也可以用以下方式聚合:
machine_final_stats = df.groupby('Machine Name', as_index=False).agg( Total_Revenue = ('Total Revenue', 'sum'), Machine_Use_Count = ('Machine Use Count', 'first') ) machine_final_stats.columns = ['Machine Name', 'Total Revenue', 'Machine Use Count'] print(machine_final_stats)
参数说明:
as_index=False可以保证聚合后Machine Name是普通数据列,而非行索引,符合你需要的输出结构agg方法支持同时对不同列指定不同的聚合规则,满足多指标统计需求
内容的提问来源于stack exchange,提问作者Kozer H
相关产品推荐
相关产品推荐

