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

Pandas中如何按条件筛选DataFrame后计算指定列的中位数

实现方法

直接通过布尔索引筛选目标行后调用pandas内置的中位数计算方法即可,完整可运行代码如下:

import pandas as pd

# 构造示例DataFrame,可替换为你自己的实际数据源
df = pd.DataFrame({
    'location': ['paris', 'paris', 'rome', 'paris'],
    'price': [5, 2, 5, 4]
})

# 核心逻辑:筛选location为paris的行,计算price列中位数
paris_price_median = df.loc[df['location'] == 'paris', 'price'].median()

print(paris_price_median)
# 输出结果:4.0,如需整数格式可以用int(paris_price_median)转换

代码说明

  • 首先通过df['location'] == 'paris'生成布尔掩码,筛选出所有location等于paris的行
  • 这里用loc索引器同时指定行、列筛选规则,是pandas更推荐的写法,也可以替换为常用的df[df['location'] == 'paris']['price']写法
  • pandas的median()方法会自动对目标序列排序后计算中位数,示例数据中筛选出的price值为[5,2,4],排序后为[2,4,5],中位数为4,和预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:08