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

如何按指定区间对100-200的数值进行分箱(含200)?

解决pd.cut自定义含闭尾区间的分箱问题

方法1:调整bins上限+重命名区间标签

通过将最后一个bins边界设为略大于200的数值,确保200被包含在区间内,再手动修改区间标签为目标格式:

import pandas as pd
import numpy as np

# 生成100到200的测试数据
data = pd.Series(np.arange(100, 201))

# 设置bins,最后一个值设为200.1,保证200被纳入区间
bins = [100, 135, 160, 175, 190, 200.1]
# 左闭右开规则分箱
cut_result = pd.cut(data, bins=bins, right=False)

# 替换区间标签,修正最后一个区间的显示
cut_result.cat.categories = ['[100, 135)', '[135, 160)', '[160, 175)', '[175, 190)', '[190, 200]']

# 验证结果
print(cut_result.unique())

方法2:用IntervalIndex手动定义区间

直接创建包含指定开闭规则的区间索引,精确控制每个区间的开闭属性:

import pandas as pd
import numpy as np
from pandas.api.types import IntervalIndex

# 手动定义区间:前四个左闭右开,最后一个为闭区间
intervals = IntervalIndex.from_tuples(
    [(100, 135), (135, 160), (160, 175), (175, 190), (190, 200)],
    closed=['left', 'left', 'left', 'left', 'both']
)

# 测试数据
data = pd.Series(np.arange(100, 201))

# 使用自定义区间分箱
cut_result = pd.cut(data, bins=intervals)

# 验证结果
print(cut_result.unique())

两种方法均能实现需求:200会被正确分到[190, 200]区间,且显示的区间标签符合要求。方法1更简洁,方法2适合需要精细化控制区间规则的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 12:45:54