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

如何通过对应索引向Pandas列插入/更新值?无需迭代

无需迭代实现DataFrame指定位置赋值的方法

方法一:直接使用loc向量化赋值

这是最直观的实现方式,利用pandas的loc索引器直接完成数据映射:

# 通过df1的index_copy列定位df2的目标行,赋值对应Numeric Value
df2.loc[df1['index_copy'], 'Column_to_be_updated'] = df1['Numeric Value']

原理:loc支持传入索引数组作为行选择器,pandas会自动对齐df1['index_copy']中的索引值与df2的行索引,将对应数据写入Column_to_be_updated列的指定位置,未被选中的行保持初始NaN值。

方法二:使用update方法安全更新

如果需要确保只更新df2中已存在的索引(避免df1包含无效索引引发的问题),可以用update方法:

# 将df1转换为以目标索引为索引的Series
update_series = df1.set_index('index_copy')['Numeric Value']
# 原地更新df2的目标列,仅处理两者共有的索引
df2['Column_to_be_updated'].update(update_series)

原理:update方法会用传入的Series值覆盖目标列的对应索引位置,仅处理双方共有的索引,不会对df2中不存在的索引做任何操作,安全性更高。

两种方法均为pandas内置的向量化操作,完全避免了循环迭代,效率远高于逐行赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:32:12