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

Python实现按分组计算数据集的25分位数与75分位数

问题描述

现有如下DataFrame:

import pandas as pd

df = pd.DataFrame({
    'code': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
    'count': [1, 2, 3, 4, 7, 8, 9, 10]
})

需求:按code分组计算25分位数(25QT)和75分位数(75QT),期望得到如下结果:

code 25QT 75QT
A    2.5   3.5
B    8.5   9.5
解决方案

由于默认分位数计算逻辑无法直接得到期望结果,可通过自定义聚合函数实现需求:

# 按code分组并自定义计算分位数
result = df.groupby('code')['count'].agg(
    twenty_five_QT=lambda x: (x.iloc[1] + x.iloc[2]) / 2,
    seventy_five_QT=lambda x: (x.iloc[2] + x.iloc[3]) / 2
).reset_index()

# 重命名列名匹配期望格式
result.columns = ['code', '25QT', '75QT']

print(result)

运行后输出:

code  25QT  75QT
0    A   2.5   3.5
1    B   8.5   9.5
说明

本次自定义逻辑基于每组固定4条数据的前提:

  • 25QT取每组排序后第2、3个元素的平均值
  • 75QT取每组排序后第3、4个元素的平均值

若每组数据量不固定,需根据实际分位数定义调整逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:33:23