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

如何使用Pandas向量化操作计算三列数据的中间值mid列

Pandas DataFrame 按行求三列中间值的优雅向量化实现

最优方案(复用已计算的max/min列)

你已经提前生成了max和min列,直接通过三数之和减去两个极值就能得到中间值,完全向量化运算,无排序开销,性能最高:

df['mid'] = df[['A', 'B', 'C']].sum(axis=1) - df['max'] - df['min']

该方案对重复值场景也完全兼容,比如存在两个或三个数值相等的情况,计算结果依然准确。

通用方案(无需依赖提前计算的极值列)

如果不需要单独保留max、min列,直接按行计算三个数的中位数即可,一行代码实现,逻辑清晰易读:

# 因为示例数据都是整数,用astype(int)转换回整数类型即可
df['mid'] = df[['A', 'B', 'C']].median(axis=1).astype(int)

两种方案都是完全向量化实现,性能远高于条件判断写法,代码也更简洁易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:03