pd.cut默认返回Interval对象而非字符串标签需显式传入labels[低,中,高]才能获得自定义等级bins为数字时做等宽分箱样本数不均衡等频分箱应使用pd.qcut并注意重复值和空值处理。用 pd.cut 做等宽分箱但结果不是你想要的等级标签直接说结论pd.cut 默认只返回区间对象Interval不是字符串标签。你看到的 (0.999, 2.0] 这类输出不能直接当“低”“中”“高”用。常见错误现象调用 pd.cut(df[score], bins3) 后想用 .map({(0.999, 2.0]: 低})结果全变成 NaN——因为实际类型是 Interval不是字符串。必须显式传入 labels 参数才能得到自定义标签例如 labels[低, 中, 高]如果 labelsFalse默认值返回的是整数编码0,1,2…不是区间也不是文字bins 为数字时如 bins3划分的是等宽区间不保证每组样本数均衡——想按数量均分得用 pd.qcut想按百分位数分“前20%为高、中间60%为中、后20%为低”别用 cut改用 qcutpd.cut 划的是数值范围pd.qcut 划的是样本顺序位置。比如考试分数分布右偏用 cut 可能把 90 分以上全挤进一个窄区间而 qcut 能确保“高”组真有 20% 的人。 Mokker AI AI产品图添加背景