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

Pandas分组聚合导出CSV缺列及新增avg_spend列问题求助

问题原因

pandas的groupby操作默认会把分组所用的维度列设为结果的行索引,你调用to_csv时设置了index=False,会跳过行索引写入,所以分组维度列就丢失了,打印时能看到是因为pandas默认会显示索引内容。

解决方法

两步操作即可满足需求:

  1. 分组时设置as_index=False,让分组维度列保留为普通数据列,不转成索引
  2. 聚合完成后直接按规则新增avg_spend计算列

修正后代码

# 分组聚合时加as_index=False保留所有分组维度列
final = gg.groupby(['Phone','BID', 'P_NAME', 'STATE','VILLAGE', 'TALUK', 'DISTRICT'], as_index=False) \
    .agg({'AMOUNT':'sum', 'CUST_NUMB': 'count','DATE': 'max'})

# 新增计算列avg_spend
final['avg_spend'] = final['AMOUNT'] / final['CUST_NUMB']

# 写入CSV,所有字段都会正常导出
final.to_csv("spend.csv", index=False)

如果不想修改groupby的参数,也可以在聚合完成后调用reset_index()把索引转成普通列,效果完全一致:

final = gg.groupby(['Phone','BID', 'P_NAME','STATE','VILLAGE', 'TALUK', 'DISTRICT']) \
    .agg({'AMOUNT':'sum', 'CUST_NUMB': 'count','DATE': 'max'}).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:54:05