You need to enable JavaScript to run this app. 如何不使用df.iterrows()按元组索引替换DataFrame列整数值
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用df.iterrows()按元组索引替换DataFrame列整数值

实现方法

完全不需要用df.iterrows(),有两种非常简洁的批量处理方案,性能比逐行循环高很多:

  • 直接用Series.map做映射,代码最短:
    df['col_2'] = df['col_2'].map(my_tuple)
    
    因为元组本身就是可位置索引的序列,col_2列里存的整数刚好可以直接当索引值取对应的元组元素,整个操作是批量完成的,没有逐行遍历的开销。
  • 用NumPy花式索引,处理大体积DataFrame时速度更快:
    import numpy as np
    df['col_2'] = np.array(my_tuple)[df['col_2']]
    
    先把元组转成numpy数组,再用col_2列的整数值数组当位置索引,一次性把所有对应元素取出来替换原列值。

两种方法执行完都能得到目标输出:

col_1   col_2
0     abc   frank
1     cba     joe
2     bca     bob

小提示:用这两种方法要确保col_2里的所有整数都在元组的合法索引范围内,也就是不能小于0、不能超过元组长度减1,不然会报索引越界的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 11:57:02