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

Pandas按行apply效率优化:动态列阈值过滤提速方案

高效可扩展的大数据集过滤方案

针对500万行以上的数据集,逐行apply的处理方式因Python级循环导致效率极低,这里提供一种纯向量化、可扩展的解决方案,无需修改代码即可适配新增的测量列:

核心思路

通过numpy的数组索引直接提取每行T_name指定的测量值,再与阈值T做向量化比较,完全规避逐行循环的开销。

实现代码

import pandas as pd
import numpy as np

# 示例数据
df = pd.DataFrame({'A':[1,1,4,4],'B':[9,9,6,6], 'T_name': ['A','B','A','B'], 'T':[2,4,3,5]})

# 1. 获取每行T_name对应的列索引
col_indices = df.columns.get_indexer(df['T_name'])
# 2. 向量化提取对应测量值
measured_values = df.to_numpy()[np.arange(len(df)), col_indices]
# 3. 生成过滤掩码
mask = measured_values > df['T'].to_numpy()
# 4. 过滤得到结果
high_values = df[mask]

输出结果

A  B T_name  T
1  1  9      B  4
2  4  6      A  3
3  4  6      B  5

优势说明

  • 极致性能:基于numpy的C级向量化操作,比apply快100~1000倍,500万行数据可在数秒内完成处理。
  • 完美扩展性:后续新增测量列(如C、D)时,只要T_name的取值对应新增列名,无需修改任何代码即可自动适配。
  • 内存友好:所有操作均基于原数据的数组视图,不会额外产生大规模中间数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:22:44