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

如何提升Pandas DataFrame中自定义函数的执行速度?

优化方案

你的代码速度慢的核心原因是df.apply(axis=1)本质是逐行调用Python函数,属于Python层循环,面对万级以上数据时效率极低。改用Pandas向量化操作即可获得数百倍的性能提升,5万条数据的处理耗时可以从7秒降到10毫秒以内。

方案1:布尔索引赋值(性能最优)

仅对符合条件的行做修改,其余行直接复用原值,运算量最小:

# 新列默认复用原area列的值
df['area_uno'] = df['area']
# 定位需要修改的行:number值为adm 且 area值为1
mask = (df['number'] == 'adm') & (df['area'] == 1)
# 仅修改符合条件的行的值
df.loc[mask, 'area_uno'] = 'uno-' + df.loc[mask, 'area'].astype(str)

如果你的area列本身就是字符串类型,可以去掉.astype(str)进一步提升速度。

方案2:np.where 三元向量化判断

代码更简洁,性能和方案1基本持平:

import numpy as np
df['area_uno'] = np.where(
    (df['number'] == 'adm') & (df['area'] == 1),
    'uno-' + df['area'].astype(str),
    df['area']
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:48:03