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

PySpark:保留DataFrame重复项同时排除另一DataFrame中的数据

解决思路与代码示例

先构造符合你描述的示例DataFrame,方便直接测试:

import pandas as pd

df1 = pd.DataFrame({'data': ['DATA1', 'DATA1', 'DATA2', 'DATA2']})
df2 = pd.DataFrame({'data': ['DATA2']})

方法1:用isin()取反筛选(最直接)

利用isin()判断df1的行是否存在于df2中,再通过取反符号~筛选出不在df2里的行,能完整保留df1原有的重复结构:

result = df1[~df1['data'].isin(df2['data'])]

方法2:左连接后过滤未匹配行

通过左连接标记出仅存在于df1的行,再过滤得到结果:

# 左连接并添加匹配标记列
merged_df = df1.merge(df2, on='data', how='left', indicator=True)
# 筛选仅在df1中存在的行,删除标记列
result = merged_df[merged_df['_merge'] == 'left_only'].drop(columns='_merge')

两种方法运行后得到的结果都是:

data
0  DATA1
1  DATA1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:35:18