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

如何将列的分位数值映射到pandas DataFrame并新增对应列

Pandas DataFrame 映射列值为分位数值实现方案

你可以用pandas内置的分位数计算工具快速实现,以下是两种常用场景的代码示例:

前置准备

首先导入pandas,这里先构造示例DataFrame供测试,你可以替换为自己的实际数据:

import pandas as pd

# 替换为你自己的DataFrame即可
df = pd.DataFrame({
    "Number of House": [1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10]
})

方法1:划分固定数量的分位等级

如果你需要把数值划分成指定数量的分位区间,返回1~N的分位等级(比如四分位、十分位),用pd.qcut实现:

# q参数指定分位数量:q=4为四分位,q=10为十分位,也可以传入自定义分位数列表如q=[0, 0.3, 0.7, 1]
# labels参数指定每个分位的返回值,duplicates='drop'用于处理重复值导致的边界重叠报错
df["house_quantile_level"] = pd.qcut(
    df["Number of House"],
    q=4,
    labels=[1, 2, 3, 4],
    duplicates="drop"
)

方法2:返回精确的分位百分比值

如果你需要每个取值对应的0~1之间的精确分位数值(比如0.75代表该值超过了75%的样本),用rank方法实现:

# pct=True表示返回百分比排名,method参数指定重复值的排名规则:
# average:相同值取平均排名,min:相同值取最小排名,max:相同值取最大排名,first:按出现顺序排名
df["house_quantile_pct"] = df["Number of House"].rank(
    pct=True,
    method="average"
)

处理后你会得到包含原始列和新分位列的DataFrame,和你预期的效果逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:36:02