You need to enable JavaScript to run this app. 如何对pandas分组聚合得到的numpy形式结果进行排序?
优惠活动
大模型
产品
解决方案
定价
更多

如何对pandas分组聚合得到的numpy形式结果进行排序?

实现代码

你可以直接用以下代码实现需求:

import pandas as pd
import numpy as np

# 分组聚合时设置as_index=False,保留seller为普通列,不会转为行索引
seller_total = df.groupby("seller", as_index=False).aggregate({"price_paid": np.sum})

# 按price_paid列降序排序
sorted_seller = seller_total.sort_values(by="price_paid", ascending=False)

# 可选:设置浮点数显示格式,禁用科学计数法,金额保留2位小数
pd.set_option("display.float_format", lambda x: "%.2f" % x)

# 输出结果
print(sorted_seller)

原写法问题说明

之前的写法问题核心有两点:

  • groupby默认会把分组键seller转为行索引,直接对聚合结果切片倒序时,容易丢失索引对应的卖家信息,最终只剩数值序列
  • 科学计数法是pandas/numpy对特定范围浮点数的默认显示规则,修改显示格式或者对金额列做小数位截断即可解决

如果不需要全局修改浮点数显示规则,也可以仅对当前结果的金额列做处理:

sorted_seller["price_paid"] = sorted_seller["price_paid"].round(2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 12:57:02