使用pandas统计多CSV文件id/itemName出现次数并聚合Entries列
你遇到的AttributeError: 'list' object has no attribute 'groupby'报错是因为groupby是Pandas DataFrame对象的专属方法,无法直接作用于DataFrame列表,需要先将列表内的所有DataFrame合并为单个全局表后再执行聚合计算。
完整实现流程
1. 合并所有DataFrame
调用Pandas的concat方法纵向拼接你已生成的DataFrame列表,自动匹配同名字段:
import pandas as pd # df_list 替换为你实际存储DataFrame的列表变量名 all_data = pd.concat(df_list, ignore_index=True)
2. 按id+itemName分组执行多维度聚合
以id和itemName作为联合分组键,一次完成所有统计需求的计算:
stat_result = all_data.groupby(['id', 'itemName'], as_index=False).agg( 出现次数=('Entries', 'count'), Entries总和=('Entries', 'sum'), Entries最高值=('Entries', 'max'), Entries最低值=('Entries', 'min') )
聚合规则完全匹配你的需求:
count统计每个分组的总行数,因为你已确认单文件内id+itemName唯一,所以行数等于该组合跨文件的总出现次数sum计算该组合所有Entries值的跨文件总和max/min分别取该组合所有Entries值的全局最大值、最小值
3. 导出结果到CSV
直接调用to_csv方法输出最终结果文件,关闭默认索引列:
stat_result.to_csv('统计结果.csv', index=False, encoding='utf-8-sig')
内容的提问来源于stack exchange,提问作者Baobab1988
相关产品推荐
相关产品推荐

