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

Python Pandas快速更新DataFrame指定列元素的优化方法

Pandas 百万行数据列值映射高性能实现方案

iterrows()逐行遍历是Pandas中性能最差的操作之一:该方法逐行返回Series对象,每次循环都要触发Python层的索引定位、单元素赋值,完全没有利用底层向量化运算能力,百万行规模下会产生几十到上百倍的额外开销,执行耗时过长是必然结果。

直接使用Pandas原生的向量化API实现即可,无Python层循环,运算效率比逐行遍历高100~1000倍,百万行数据可在毫秒级完成处理,代码逻辑和需求完全对齐:

import pandas as pd

mmap = {'Current Account':'0', 'New Account':'NEW', 'Closed Account':'CLSD'}
else_str = '+01'

csv1 = pd.read_csv("csv_file.csv")
# 单列批量映射,未匹配到字典键的值统一填充兜底值
csv1["ColumnName"] = csv1["ColumnName"].map(mmap).fillna(else_str)

实现逻辑说明

  • map(mmap)针对目标列做批量精确值匹配:所有在映射字典中存在的值会被直接替换为对应映射结果,未匹配到的值会被标记为NaN
  • fillna(else_str)把所有标记为NaN的未匹配值,统一替换为指定的兜底值+01
  • 整个运算过程在C层面完成,没有Python层循环开销,是单值映射场景下性能最优的实现方式

注意:不要在大数据量场景下使用iterrows()、itertuples()逐行修改DataFrame值,这类方法仅适合小数据量的快速调试,处理十万行以上数据优先选择原生向量化API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:09:23