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

如何计算DataFrame每行a/b/c/d四列的四分位距q3-q1?

实现方案

你可以直接通过pandas的逐行apply配合四分位距计算函数实现,以下是两种可选方案:

前置准备:构造示例DataFrame

import pandas as pd

# 按你给出的结构构造测试数据
df = pd.DataFrame({
    "a": [1, 5],
    "b": [2, 6],
    "c": [3, 2],
    "d": [4, 7]
})

方案1:纯pandas实现(无额外依赖)

直接通过quantile方法分别计算每行的q3、q1后求差值即可:

df["q3 - q1 from (a,b,c,d)"] = df[["a", "b", "c", "d"]].apply(
    lambda row: row.quantile(0.75) - row.quantile(0.25),
    axis=1
)

方案2:用scipy的内置IQR函数(代码更简洁)

如果允许引入scipy依赖,可以直接调用封装好的四分位距计算函数:

from scipy.stats import iqr

df["q3 - q1 from (a,b,c,d)"] = df[["a", "b", "c", "d"]].apply(lambda row: iqr(row), axis=1)

结果说明

运行后得到的计算结果如下:

abcdq3 - q1 from (a,b,c,d)
12341.5
56272.0

如果需要使用其他四分位数计算规则(比如基于n+1的统计方法),可以通过quantile方法的method参数调整计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:15:03