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

Python:Pandas Groupby后DataFrame列标题显示异常问题

解决方法:GroupBy后自定义聚合列名

没问题!这在pandas分组聚合里是个很常见的小需求,我给你几个简单直接的解决办法,帮你去掉列名里的amin字样,得到想要的表格样式:

方法1:聚合时直接指定列名(最推荐)

用agg()方法,通过键值对的形式直接定义你想要的列名和对应的聚合函数,一步到位:

# 替换成你的DataFrame名称
result = df.groupby('EVENTID')['DTIN'].agg(Min_DTIN='min')
  • 这里Min_DTIN就是你想要的新列名,你可以改成任意名字(比如保留原列名DTIN也可以)
  • 如果希望EVENTID作为普通列而不是索引,加上reset_index()即可:
result = df.groupby('EVENTID')['DTIN'].agg(Min_DTIN='min').reset_index()

示例输出(假设原数据包含EVENTID A/B):

EVENTID   Min_DTIN
0       A 2023-01-01
1       B 2023-02-01

方法2:先聚合再重命名列

如果已经得到了带amin后缀的结果,直接用rename()方法修改列名:

# 先执行聚合(假设你的原代码得到的列名是'DTIN'或'DTIN_amin')
result = df.groupby('EVENTID')['DTIN'].min().reset_index()
# 重命名列,把旧列名改成你想要的名字
result = result.rename(columns={'DTIN': 'Min_DTIN'})
# 如果列名是'DTIN_amin',就改成:columns={'DTIN_amin': 'Min_DTIN'}

方法3:直接修改列名列表

这种方法更直接,适合已经拿到结果后快速调整:

result = df.groupby('EVENTID')['DTIN'].min().reset_index()
# 直接指定新的列名列表
result.columns = ['EVENTID', 'Min_DTIN']

小提示

  • 如果你只是想保留原列名DTIN,方法1里直接写成agg(DTIN='min')就可以,这样输出的列名还是DTIN,不会带任何后缀
  • 尽量避免用amin()方法直接聚合(除非你明确需要),因为它在某些场景下会自动生成带后缀的列名,不如agg()灵活

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:11:04