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

如何将新数值匹配到Pandas已有分类分箱区间

Pandas分箱规则复用方案

核心实现直接使用Pandas原生的pd.cut()复用原有分箱规则即可,无需手写if-elif判断函数,是向量化操作,性能远高于自定义函数逐行判断。

场景1:保留了最初分箱的分界点参数

如果你当初执行分箱时用到的bins数组还在,直接复用该参数给新数据分箱即可:

import pandas as pd

# 你最初分箱时定义的分界点,和你的现有区间完全匹配
original_bins = [12.999, 25.0, 38.0, 55.0, 218.0]

# 给新数据列A执行分箱,得到的区间和原有统计结果完全一致
new_df["A_bin"] = pd.cut(new_df["A"], bins=original_bins)

场景2:没有保留原始分界点,仅存现有value_counts结果

可以从现有统计结果的区间索引中自动提取分界点,再调用pd.cut():

# 你已有的分箱统计结果
vc = df["A"].value_counts()

# 提取所有区间边界并排序,得到原始分箱分界点
bound_set = set()
for interval in vc.index:
    bound_set.add(interval.left)
    bound_set.add(interval.right)
original_bins = sorted(bound_set)

# 给新数据分箱
new_df["A_bin"] = pd.cut(new_df["A"], bins=original_bins)

补充说明

  • pd.cut()默认是左开右闭的区间规则,和你现有分箱的区间格式完全匹配,无需额外调整参数。如果你当初分箱时修改过right、include_lowest等参数,复用的时候传入相同参数即可。
  • 如果需要输出和你value_counts()里完全一致的字符串格式的区间,加一步new_df["A_bin"] = new_df["A_bin"].astype(str)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:00:05