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

Pandas中.groupby()返回的DataFrame为何包含重复order_dow列?

Pandas groupby后列重复的问题解决

你的问题是因为用groupby('order_dow')分组后,又对order_dow列做了计数聚合,导致分组键变成了DataFrame的索引,同时聚合结果的列名也是order_dow,所以看起来列“出现了两次”。下面给你几种快速解决的办法:

方法1:用size()直接统计数量

size()会直接返回分组后的元素个数,结果是一个Series,之后转成你要的DataFrame结构:

dow_counts = df.groupby('order_dow').size().reset_index(name='counts')

执行后会得到7行2列的结果:一列是order_dow(值为0-6),另一列counts是对应日期的出现次数。

方法2:重置索引并重命名聚合列

如果习惯用count(),可以在聚合后重置索引,同时给结果列改个名字避免重复:

dow_counts = df.groupby('order_dow')['order_dow'].count().reset_index(name='counts')

reset_index()会把原来的索引(order_dow)转成普通列,name='counts'把聚合后的列名改成counts,就不会和索引列重复了。

方法3:对其他非空列计数

如果你的数据里有其他不会为空的列(比如订单ID列order_id),可以直接对这列计数,这样就不会出现列名重复的情况:

dow_counts = df.groupby('order_dow')['order_id'].count().reset_index(name='counts')

以上任意一种方法都能得到你期望的2列(日期+次数)、7行的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:20:37