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

如何在保留对应key值的前提下找出两个DataFrame产品列的差异?

找出DataFrame产品列差异并保留对应key值

直接用集合操作会丢失key关联信息,用pandas的isin()方法可以高效筛选出df2中product列不在df1里的行,同时完整保留对应的key值。

步骤代码

首先修正你代码里的拼写错误(pd.Dataframe应为pd.DataFrame),然后执行筛选:

import pandas as pd

# 定义两个DataFrame
df1 = pd.DataFrame({"product":['apples', 'bananas', 'oranges', 'kiwi']})
df2 = pd.DataFrame({"product":['apples', 'aples', 'appples', 'banans', 'oranges', 'kiwki'], "key": [1, 2, 3, 4, 5, 6]})

# 筛选df2中product不在df1里的行
result_df = df2[~df2['product'].isin(df1['product'])]

筛选结果

执行后result_df的内容为:

product  key
1     aples    2
2   appples    3
3    banans    4
5     kiwki    6

转换成你想要的列表格式

如果需要输出成你指定的列表形式,可提取列数据:

product_list = result_df['product'].tolist()
key_list = result_df['key'].tolist()

print(f"result = {product_list}[{key_list}]")

输出结果:

result = ['aples', 'appples', 'banans', 'kiwki'][[2, 3, 4, 6]]

原理说明

df2['product'].isin(df1['product'])会生成一个布尔序列,标记df2的product是否存在于df1中;前面加~取反,就能筛选出不存在的行,完美保留key与product的关联关系,避免集合操作丢失信息的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:10:40