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

如何在pandas DataFrame中新增列计算价格列对应指定分位数值

实现方法

直接使用Pandas内置的pd.qcut()函数即可完成需求,该函数专门用于按指定分位数对数值列进行分箱匹配。

完整代码示例

import pandas as pd

# 1. 定义你需要的分位数边界列表
quantile_list = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 1]

# 2. 计算价格对应的分位数值,写入新列
# labels参数设置为quantile_list[1:],即返回每个区间对应的上边界分位值
df['Price Quantiles'] = pd.qcut(
    df['Price'],
    q=quantile_list,
    labels=quantile_list[1:],
    duplicates='drop' # 可选,遇到重复分位点时自动去重避免报错
)

# 如果需要返回分位数区间的序号(比如第1个区间返回1,第2个返回2),替换为下面的写法
# df['Price Quantiles'] = pd.qcut(df['Price'], q=quantile_list, labels=False, duplicates='drop') + 1

参数说明

  • q:传入自定义的分位数列表,函数会自动按该列表划分价格区间
  • labels:定义每个区间输出的标签值,这里直接取分位数列表的后段作为标签,匹配你要输出对应分位数值的需求
  • duplicates='drop':当价格列有大量重复值导致分位点重复时,添加该参数可避免分箱报错,属于可选容错参数
  • 若需要调整分位数的插值计算逻辑,可添加interpolation参数,可选值为linear(默认)、lower、higher、nearest、midpoint

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:24:06