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

如何通过字典映射快速更新Pandas DataFrame的stockID列

高效实现方案

你原来的代码运行慢是因为用了iterrows()逐行遍历,属于Python级别的循环操作,数据量较大时性能损耗非常高。Pandas内置的向量化操作可以完美替代这种循环场景,以下是最优实现:

直接用Series.map()方法完成字典映射,一行代码即可:

df['stockID'] = df['level_1'].map(stockDict)

如果存在部分level_1的股票代码不在映射字典中的情况,上述代码会把对应行的stockID设为NaN,如果你想保留这些行原来的stockID值(比如示例里的默认值0),可以加一步填充:

df['stockID'] = df['level_1'].map(stockDict).fillna(df['stockID']).astype(int)

这种向量化操作是在C层面执行的,对于2万行左右的数据,执行耗时基本在毫秒级,相比iterrows()的遍历方案性能提升可达数百倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:36:03