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

合并索引部分重叠的Pandas DataFrame时如何保留左表列值

Pandas 重叠索引DataFrame合并解决方案

你的需求核心是保留左表df1的全部数据,仅追加右表df2中索引(date列)不与df1重复的部分,可通过以下两种方式实现:

方法1:先筛选独有行再拼接

逻辑最直观,先过滤出df2中date未出现在df1的行,再和df1直接拼接:

# 筛选df2的独有的行
df2_only = df2[~df2['date'].isin(df1['date'])]
# 拼接得到结果
df3 = pd.concat([df1, df2_only], ignore_index=True)
# 若需要将date设为索引,可追加以下代码
# df3 = df3.set_index('date')

方法2:拼接后按主键去重

利用drop_duplicates的保留规则,自动优先保留df1的重叠行:

# 先合并两个表,再按date列去重,保留先出现的(即df1中的)行
df3 = pd.concat([df1, df2]).drop_duplicates(subset='date', keep='first').reset_index(drop=True)

原有代码错误原因

你之前使用的merge写法没有指定合并主键,默认会对所有同名列(date、count)做等值匹配,而df1和df2重叠日期对应的count值不同,merge后这些重叠日期会生成两行数据,且没有设置df1优先级的逻辑,因此无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:05