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

Pandas:将df2中存df1索引的id_nearest列替换为对应STATION NAME值

错误原因

你写的循环中每次都对df2["id_name"]整个列赋值,循环运行到最后一次时,_id取值为4,对应df1的JACK BARSTOW AIRPORT,导致所有行的id_name都被覆盖为这个值。

最优实现方案(向量化操作,效率最高)

直接用Pandas的map方法做映射匹配,无需循环:

# 构造df1索引到STATION NAME的映射关系
id_name_map = df1['STATION NAME']
# 匹配生成新列
df2['id_name'] = df2['id_nearest'].map(id_name_map)

循环写法修正(仅做参考,不推荐大数据量使用)

如果要保留循环写法,需要每次仅对当前行赋值,不要修改整列:

for index, row in df2.iterrows():
    _id = row['id_nearest']
    df2.loc[index, 'id_name'] = df1.loc[_id, 'STATION NAME']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:27:03