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

pandas分组聚合后如何将Date字段设为DataFrame的普通列

问题原因

pandas的groupby分组聚合操作默认会将指定的分组字段设置为结果DataFrame的行索引,不会作为普通列存储。你的代码里用Date作为分组键,所以聚合后Date变成了行索引,自然不会出现在columns返回的列名列表里,不是字段读取失败的问题。

解决方法

有两种最常用的方案可以把Date转为普通列,优先推荐第一种:

  • 方案1:分组时直接关闭分组键转索引的默认设置,或者聚合完成后重置索引,代码改动最小:
c = df[['start day','near_penn','Date']]
c = c.loc[c['near_penn']==1]
# 写法1:groupby加as_index=False参数,分组键直接保留为普通列
pre_pandemic_df_new = c.groupby('Date', as_index=False).agg({'near_penn':'sum'})

# 写法2:聚合完成后链式调用reset_index(),把作为索引的Date转回普通列
# pre_pandemic_df_new = c.groupby('Date').agg({'near_penn':'sum'}).reset_index()

print(pre_pandemic_df_new.columns) # 此时输出会同时包含Date和near_penn
  • 方案2:手动将索引赋值为新列,再重置索引丢弃原索引:
pre_pandemic_df_new = c.groupby('Date').agg({'near_penn':'sum'})
pre_pandemic_df_new['Date'] = pre_pandemic_df_new.index
pre_pandemic_df_new = pre_pandemic_df_new.reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.22 16:12:26