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

Python Groupby计数问题:桑基图数据预处理遇阻

解决桑基图数据分组统计的问题

我明白你在制作桑基图时遇到的分组统计问题了——你需要统计event_action_num到next_action_num的跳转次数,并用三列格式输出,但直接用groupby().count()没得到预期结果。

问题原因

你当前的代码df_new.groupby(['event_action_num', 'next_action_num']).count()会做两件不符合你需求的事:

  • 它会统计每组内所有非分组列的非空值数量(比如你的示例里会统计index列的计数,但结果会保留这个列名,而不是你想要的count_of)
  • 分组字段event_action_num和next_action_num会变成DataFrame的多级索引,而不是普通列,格式和你期望的不一致。

解决方案

这里有两种简单的方法可以得到你想要的结果:

方法1:使用size()统计行数(推荐)

size()会直接统计每组的总行数,配合reset_index()把索引转成普通列,再用name参数指定计数列的名称:

df_new_2 = df_new.groupby(['event_action_num', 'next_action_num']).size().reset_index(name='count_of')

方法2:指定列使用count()

如果你更习惯用count(),可以指定一个没有空值的列(比如你的index列)来统计,同样需要reset_index()调整格式:

df_new_2 = df_new.groupby(['event_action_num', 'next_action_num'])['index'].count().reset_index(name='count_of')

结果验证

用你提供的示例数据运行上述代码,会得到如下格式的结果:

event_action_numnext_action_numcount_of
063
071
152
163
171
261
361

完全符合你想要的输出格式,后续就可以用这个数据来制作桑基图啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 13:27:36