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

多维度分组分箱需求:按Type与YearlyAvg区间分组统计

解决多维度分组统计问题

没问题,你只需要在groupby里同时传入Type字段和YearlyAvg的区间分组结果就行,这样就能实现按每个独立Type下的YearlyAvg区间来统计数据了。

修改后的代码

# 按Type + YearlyAvg区间分组,统计所有字段的数量
result = df.groupby(['Type', pd.cut(df['YearlyAvg'], np.arange(0,1250,50))]).count()

# 更推荐:只统计ID的数量(避免冗余统计,结果更简洁)
result = df.groupby(['Type', pd.cut(df['YearlyAvg'], np.arange(0,1250,50))])['ID'].count()

代码解释

  • ['Type', pd.cut(...)]):把Type作为第一个分组维度,YearlyAvg的区间作为第二个维度,这样每个Type都会单独划分YearlyAvg区间进行统计,完全满足你区分Type维度的需求。
  • 指定统计ID字段是因为我们只关心每组的样本数量,这样不会重复统计Total、TotalDate等无关字段,结果更干净高效。

示例输出(基于你提供的两行测试数据)

用第二个代码片段的话,输出会是这样的结构:

Type   YearlyAvg
AT267  (200, 250]    1
PQ43   (0, 50]       1
Name: ID, dtype: int64

进阶:整理结果格式(方便后续构建蒙特卡洛分布)

如果想把结果转换成更易读的普通DataFrame,方便后续分析或可视化,可以加上reset_index()并给统计列命名:

result = df.groupby(['Type', pd.cut(df['YearlyAvg'], np.arange(0,1250,50))])['ID'].count().reset_index(name='SampleCount')

转换后的结果会是标准的表格形式:

TypeYearlyAvgSampleCount
AT267(200, 250]1
PQ43(0, 50]1

这样就能完美满足你多维度分组统计的需求,后续可以直接基于这个结果构建蒙特卡洛分布啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:19:14