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

Pandas合并DataFrame时保留首表全量行并去重重复索引行的方法

实现方案

核心思路

  • 先对df2做索引过滤,仅保留索引没有出现在df1索引中的行
  • 再直接拼接df1和过滤后的df2即可

代码实现

import pandas as pd

# 示例数据构造,实际使用时替换为你自己的df1、df2即可
df1 = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': [3,4,0]}, index=['id0', 'id1', 'id2'])
df2 = pd.DataFrame({'A': ['aa', 'd', 'r'], 'B': [80,44,100]}, index=['id2', 'id3', 'id4'])

# 核心处理逻辑
# 过滤掉df2中与df1索引重复的行
df2_filtered = df2[~df2.index.isin(df1.index)]
# 拼接两个DataFrame得到最终结果
result = pd.concat([df1, df2_filtered])

逻辑说明

  • df2.index.isin(df1.index) 会返回布尔序列,标记df2的索引是否在df1的索引中存在
  • 符号~代表取反,最终筛选出df2中索引未在df1出现过的行
  • pd.concat按传入顺序拼接两个DataFrame,会完整保留df1的所有行和原有值,不会出现索引冲突覆盖的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:06:05