Pandas分组聚合导出Excel缺失分组列问题求助
解决Pandas分组聚合后导出Excel丢失分组列的问题
你的代码存在两个关键问题,导致导出结果仅包含聚合列:
- 未执行聚合计算:
.sum只是引用了求和方法,没有实际执行计算,必须加上括号写成.sum()才会生成聚合后的DataFrame。 - 丢弃了分组索引列:
groupby默认会将分组列设为DataFrame的索引,导出时使用index=False会直接丢弃这些索引列,导致分组信息丢失。
修复方案一:分组时保留分组列为普通列
在groupby中添加as_index=False参数,让分组列保持为DataFrame的普通列,而非索引:
import pandas as pd df = pd.read_excel('new_file.xlsx', sheet_name='pack') # 添加as_index=False,分组列不会转为索引 df = df.groupby(['STYLE', 'BRAND NAME', 'PRODUCT DESCRIPTION', 'COLOR','Size','SIZE RANGE', 'Retail Price','WEBSITE COUNTRY', 'SKU','BARCODE'], as_index=False).sum() df.to_excel('result.xlsx', index=False)
修复方案二:将分组索引还原为列
如果不想修改groupby参数,可以在聚合后用reset_index()把索引列转换为普通列:
import pandas as pd df = pd.read_excel('new_file.xlsx', sheet_name='pack') # 执行聚合后,用reset_index()将索引转为普通列 df = df.groupby(['STYLE', 'BRAND NAME', 'PRODUCT DESCRIPTION', 'COLOR','Size','SIZE RANGE', 'Retail Price','WEBSITE COUNTRY', 'SKU','BARCODE']).sum().reset_index() df.to_excel('result.xlsx', index=False)
两种方案都能让导出的Excel包含所有分组列和聚合结果,根据使用习惯选择即可。
内容的提问来源于stack exchange,提问作者高汤娃娃菜
相关产品推荐
相关产品推荐

