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

基于idx列匹配,用另一个dataframe的行替换原dataframe对应行

实现方法

方法1:使用update方法(推荐,大样本下性能更优)

核心逻辑是临时将idx列设为匹配键,匹配完成后恢复原索引,全程不依赖两个DataFrame的原始行索引:

# 临时将idx设为索引,保留原idx列
data_idx = data.set_index('idx', drop=False)
g2_idx = g2_data.set_index('idx', drop=False)

# 按idx匹配,用g2_idx的数值覆盖data_idx的对应行
data_idx.update(g2_idx)

# 恢复data原本的行索引顺序
data = data_idx.reset_index(drop=True)

方法2:使用isin定位匹配行(适合小样本场景)

如果不想修改索引,可直接定位匹配行后赋值:

# 定位data中需要替换的行
match_mask = data['idx'].isin(g2_data['idx'])
# 按idx对齐g2_data后赋值给对应行
data.loc[match_mask, :] = g2_data.set_index('idx').reindex(data.loc[match_mask, 'idx']).reset_index(drop=True)

两种方案均不受g2_data是否重置索引的影响,只要idx列取值唯一即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:06:03