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

如何在Python中划分列的quantile并确定Price所属quantile?

Python实现Price列分位数划分并生成分位数标签与边界

原始数据集

HighLowPrice
1057

需求说明

对Price列进行四分位数划分,为每个Price值标注所属分位数(Q1-Q4),同时生成统一的分位数边界序列,最终得到指定格式的输出表。

实现代码

import pandas as pd

# 构造目标测试数据
data = {
    'High': [10, 10, 10, 10],
    'Low': [5, 5, 5, 5],
    'Price': [8, 9, 6, 6.5]
}
df = pd.DataFrame(data)

# 计算从高到低排列的四分位数边界
quantiles = df['Price'].quantile([1, 0.75, 0.5, 0.25, 0]).tolist()
# 转换为字符串格式
qtr_range_str = ', '.join(map(str, quantiles))

# 为Price值分配分位数标签(Q1对应最高区间,Q4对应最低)
df['Qtr'] = pd.cut(
    df['Price'],
    bins=quantiles,
    labels=['Q1', 'Q2', 'Q3', 'Q4'],
    include_lowest=True
)

# 添加统一的分位数边界列
df['Qtr_Ranges'] = qtr_range_str

# 调整列顺序匹配期望输出
df = df[['High', 'Low', 'Price', 'Qtr', 'Qtr_Ranges']]

# 输出结果
print(df)

代码说明

  1. 先构造包含目标测试数据的DataFrame
  2. 通过quantile()计算四分位数,按[1, 0.75, 0.5, 0.25, 0]排序得到从高到低的边界,匹配示例输出的顺序
  3. 使用pd.cut()将Price值映射到对应分位数区间,设置include_lowest=True确保最小值被正确划分
  4. 为所有行添加统一的分位数边界字符串列
  5. 调整列顺序与期望输出对齐

输出结果

HighLowPriceQtrQtr_Ranges
1058Q310, 8.75, 7.5, 6.25, 5
1059Q110, 8.75, 7.5, 6.25, 5
1056Q410, 8.75, 7.5, 6.25, 5
1056.5Q310, 8.75, 7.5, 6.25, 5

代码格式问题解决

若发布时提示“未正确格式化为代码块”,需确保:

  • 代码块前后用三个独立的反引号(```)包裹,且反引号单独占一行
  • 可在反引号后指定代码语言(如python),提升可读性
  • 代码内部不要混入Markdown格式标记,保持纯代码内容

内容的提问来源于stack exchange,提问作者Divyansh Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:40:56