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

如何按全样本分位数对Pandas数据进行分组?

基于分位数对Pandas数据分组的高效方法

直接用Pandas内置的pd.qcut()函数就能解决这个问题,这是专门为分位数分组设计的工具,完全不用手动合并和写一堆if else判断,十分适合你要的十分位数分组场景。

具体步骤:

  1. 导入依赖库并生成测试数据:
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=['a'])
  1. 用pd.qcut()生成分组列b:
# 按十分位数划分,生成group 1到group 10的标签
df['b'] = pd.qcut(df['a'], q=10, labels=[f'group {i}' for i in range(1, 11)])

参数说明:

  • q=10:指定将数据分成10个等频分组(对应十分位数)
  • labels:自定义分组的显示标签,这里用列表生成式快速生成group 1到group 10
  • 如果遇到数据中有重复值导致分位数相同、无法严格均分的情况,可以添加duplicates='drop'参数自动调整分组边界,避免报错:
df['b'] = pd.qcut(df['a'], q=10, labels=[f'group {i}' for i in range(1, 11)], duplicates='drop')

验证分组结果

你可以查看每个分组的样本数量,确认是近似等频的:

print(df['b'].value_counts())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:06:20