You need to enable JavaScript to run this app. Python Pandas构建频数分布表 基于groupby分组的实操疑问
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas构建频数分布表 基于groupby分组的实操疑问

Pandas分组生成目标频数统计的实现方法

你最初考虑的groupby按Balances列分组的思路完全正确,无需拆分多步操作,直接搭配聚合函数即可一次性生成符合要求的统计结果。

第一步:复现示例数据

先导入pandas并按照你给出的数值构造原始DataFrame,验证后续计算逻辑:

import pandas as pd

df = pd.DataFrame({
    "Balances": [10, 11, 12, 13, 10, 13],
    "Weight": [7, 15, 30, 20, 15, 20]
})

第二步:分组聚合生成目标表

利用agg方法,一次性指定每类统计指标的计算规则,不需要重复执行分组操作:

result = df.groupby("Balances").agg(
    Balances出现频次=("Balances", "count"),
    Weight最小值=("Weight", "min"),
    Weight最大值=("Weight", "max"),
    Weight平均值=("Weight", "mean")
).reset_index()

计算结果说明

运行后得到的统计表结构完全匹配你的需求,对应数值如下:

BalancesBalances出现频次Weight最小值Weight最大值Weight平均值
10271511.0
111151515.0
121303030.0
132202020.0

新手易踩的注意点

  • groupby执行后默认会将分组列设为表索引,搭配.reset_index()可以将Balances还原为普通数据列,避免后续操作出现索引层级混乱
  • 分组时填写的列名必须和实际DataFrame的列名完全匹配,注意大小写差异(比如你提到的balances和示例中的Balances不一致时会触发列不存在的报错)
  • 如果不需要自定义列名,也可以用简写聚合写法实现相同计算:df.groupby("Balances")["Weight"].agg(["count", "min", "max", "mean"]).reset_index(),得到的数值结果完全一致,仅列名为默认的函数名,可按需后续修改列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 07:45:08