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

如何基于特定值为Pandas DataFrame分配分组编号?

解决Pandas DataFrame分组编号问题

嘿,这个需求其实很容易实现,用Pandas的分箱工具就能搞定。我给你两种靠谱的方案,根据你的实际场景选就行:

方案一:按等数量分组(推荐)

因为你要求把排序后的a列划分为10组,每组数量一致,用pd.qcut()是最适合的——它会按数据的分位数切割,保证每组的样本数量尽可能相等。

代码示例

import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame({'a': range(20)})

# 生成1-10的分组编号
df['group_num'] = pd.qcut(df['a'], q=10, labels=range(1, 11))

结果预览

a  group_num
0   0          1
1   1          1
2   2          2
3   3          2
4   4          3
5   5          3
...
18  18         10
19  19         10

方案二:按数值区间分组

如果你的需求是按固定数值范围分组(比如0-1为组1,2-3为组2...),可以用pd.cut(),它会按指定的区间切割数据。因为你的a列是均匀分布的0-19,这个方案也能得到和上面一样的结果:

代码示例

df['group_num'] = pd.cut(df['a'], bins=10, labels=range(1, 11))

小提示

  • 如果你的数据不是均匀分布的(比如有大量重复值或极端值),优先选qcut,它能保证每组的样本数量更均衡;
  • 如果你需要自定义分组区间,可以给bins参数传入具体的区间列表,比如bins=[0,2,4,...,20]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:18:29