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

为什么pandas的groupby结果不显示内容?如何按分组出现次数排序?

问题原因

直接调用df.groupby()仅会生成DataFrameGroupBy中间对象,该对象仅存储分组映射逻辑,未执行任何聚合计算,因此直接打印只会输出对象的内存地址,不会展示分组汇总结果。

实现方案

1. 查看分组汇总结果

如果需要查看每个分组的统计汇总,可调用agg方法指定聚合规则,示例如下:

# 按Animal分组,统计每组的出现次数、最大速度、平均速度
group_summary = df.groupby('Animal').agg(
    出现次数=('Animal', 'count'),
    最高速度=('Max Speed', 'max'),
    平均速度=('Max Speed', 'mean')
)
display(group_summary)

运行后即可得到分组汇总表格。

2. 按分组出现次数对原DataFrame排序

有两种常用实现方式:

方式1:通过transform生成分组计数列排序

# 给每行新增对应Animal分组的出现次数字段
df['group_count'] = df.groupby('Animal')['Animal'].transform('count')
# 按计数字段降序排序,不需要计数可后续删除该列
sorted_df = df.sort_values('group_count', ascending=False).drop('group_count', axis=1)
display(sorted_df)

方式2:通过计数映射直接排序

# 先生成每个Animal对应的出现次数字典
count_map = df['Animal'].value_counts().to_dict()
# 排序时通过映射字典取对应次数作为排序依据
sorted_df = df.sort_values(by='Animal', key=lambda x: x.map(count_map), ascending=False)
display(sorted_df)

两种方式都可以实现需求:出现次数最多的大象行排在最前,其次是出现2次的猎鹰、鹦鹉行。如果次数相同时需要自定义排序规则,可在sort_values中增加第二个排序字段调整。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:15:02