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

如何按索引用第二个DataFrame的值替换第一个DataFrame对应值

按索引匹配替换DataFrame指定列值

示例数据构造

先还原你提供的两个DataFrame:

import pandas as pd

df1 = pd.DataFrame({'JanDivisor': ['G2/59']}, index=[0])
df2 = pd.DataFrame({'JanDivisor': ['G2/44']}, index=[0])

方法一:使用update()快速替换

update()方法会自动对齐索引和列名,仅用df2中存在的索引-列值覆盖df1对应位置,未匹配到的内容保持不变:

# 直接修改原df1
df1.update(df2)
# 查看结果
print(df1)

输出结果:

JanDivisor
0      G2/44

如果不想修改原df1,先复制一份再操作:

df1_copy = df1.copy()
df1_copy.update(df2)

方法二:用loc手动精准替换

适合需要自定义替换范围(比如指定列、添加筛选条件)的场景:

# 获取两个DataFrame共有的索引
common_idx = df1.index.intersection(df2.index)
# 按索引替换指定列的值
df1.loc[common_idx, 'JanDivisor'] = df2.loc[common_idx, 'JanDivisor']

两种方法都能实现「仅替换df1中与df2索引匹配的行,其余行保留原样」的需求。如果df2包含多个索引(比如df1有索引0、1,df2有索引0、2),只会替换df1中存在的匹配索引行,不会新增或删除df1的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:59:54