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

如何基于col1列对比两个DataFrame,保留第二个的特定行?

解决方案

你可以用pandas的isin()方法结合取反操作~快速实现需求,直接筛选出df2中col1值不在df1的col1集合里的行:

import pandas as pd

df1 = pd.DataFrame({'col1': ['A', 'B', 'C'], 'col2': [1, 3, 4]})
df2 = pd.DataFrame({'col1': ['A', 'D', 'E', 'F'], 'col2': [2, 5, 6, 7]})

# 筛选目标行
result = df2[~df2['col1'].isin(df1['col1'])]
print(result)

运行后输出结果:

col1  col2
1    D     5
2    E     6
3    F     7

补充说明

  • df2['col1'].isin(df1['col1'])会生成布尔序列,标记df2的col1值是否存在于df1的col1中
  • 前缀~用于对布尔值取反,保留那些不在df1中的行
  • 这种方法比merge更高效,尤其适合处理大数据量的情况

如果需要重置结果的索引,可以追加.reset_index(drop=True):

result = df2[~df2['col1'].isin(df1['col1'])].reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:02:38