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

pd.cut分箱后如何将分箱标识及对应概率值映射回原pandas DataFrame

实现方案

你可以按照以下步骤直接把分箱信息和对应概率映射回原DataFrame:

  • 直接把pd.cut()的返回结果赋值为原DataFrame的新列:pd.cut()返回的序列长度和原输入列完全一致,每个元素对应原行的所属分箱,无需额外匹配。
  • 用value_counts(normalize=True)直接计算各分箱的概率,替代手动除以总长度的写法,结果更准确。
  • 通过map()方法把分箱对应的概率匹配到原数据集的每一行。

完整可运行代码(适配你提供的样本数据)

import pandas as pd

# 读取样本数据,实际使用时替换为你自己的DataFrame即可
df = pd.read_csv("你的样本文件路径.csv")

# 1. 新增分箱列,直接存储每行对应的分箱区间
# 如果你处理的是main列,替换为 df['main_bin'] = pd.cut(df['main'], bins=10)
df['temp_bin'] = pd.cut(df['Max Temp (°C)'], bins=10)

# 2. 计算每个分箱对应的出现概率
bin_prob = df['temp_bin'].value_counts(normalize=True)

# 3. 新增概率列,把分箱对应的概率映射回每一行
df['bin_probability'] = df['temp_bin'].map(bin_prob)

可选优化

如果你不想用区间作为分箱标识,可在pd.cut中添加labels参数自定义分箱名称,示例:

# 自定义分箱名为 分箱1~分箱10
df['temp_bin'] = pd.cut(df['Max Temp (°C)'], bins=10, labels=[f"分箱{i+1}" for i in range(10)])

运行完成后你直接查看原DataFrame,就能看到每行都新增了所属分箱和对应概率两个字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:24:05