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

如何检查多列值对是否存在于另一DataFrame并实现去重?

多列匹配移除DataFrame重复条目解决方案

原来的单列判断代码df1=df1[~df1.user_id.isin(df2.user_id)]无法直接支持多列判断,需要调整代码才能实现基于User_id和User_name两列同时匹配的去重需求,以下是两种可行的实现方式:

方法一:利用merge的indicator参数(推荐,性能更优)

通过左连接两个DataFrame,借助indicator标记每条数据的来源,筛选出仅存在于df1的条目:

# 以User_id和User_name为键左连接,添加_merge列标记来源
merged_df = df1.merge(df2, on=['User_id', 'User_name'], how='left', indicator=True)
# 筛选仅在df1中存在的行,移除_merge列
df1 = merged_df[merged_df['_merge'] == 'left_only'].drop('_merge', axis=1)

方法二:将多列转为元组后用isin判断

把两列组合成元组,再用isin进行集合判断,代码更简洁但大数据量下性能稍逊:

# 将df1和df2的目标列转为元组列表,判断是否存在交集并过滤
df1 = df1[~df1[['User_id', 'User_name']].apply(tuple, axis=1).isin(df2[['User_id', 'User_name']].apply(tuple, axis=1))]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:19:50