首页 > 后端开发 > Python教程 > 如何识别一个 Pandas DataFrame 中存在但另一个中不存在的行?

如何识别一个 Pandas DataFrame 中存在但另一个中不存在的行?

DDD
发布: 2024-12-14 08:20:15
原创
324 人浏览过

How to Identify Rows Present in One Pandas DataFrame but Absent in Another?

识别 DataFrame 之间不同的行

问题陈述

给定两个具有相交行的 Pandas 数据帧(df1 和 df2),任务是隔离df1 中不存在的行df2.

解决方案

为了解决这个问题,我们可以从 df1 到 df2 执行左连接,确保消除 df2 中的重复项,从而确保 df1 的每一行仅与 df2 的一行连接df2.

df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)
登录后复制

此左连接创建一个额外的列 _merge 指示起源

为了过滤 df1 独有的行,我们应用布尔条件:

df_filtered = df_all[df_all['_merge'] == 'left_only']
登录后复制

不正确的解决方案

某些解决方案在检查每个值时出错列独立而不是考虑行的存在。例如,此解决方案:

(~df1.col1.isin(common.col1)) & (~df1.col2.isin(common.col2))
登录后复制

返回不正确的结果,因为它无法捕获值为 [3, 10] 的行,而该行通常不存在:

0    False
1    False
2    False
3     True
4     True
5    False
dtype: bool
登录后复制

以上是如何识别一个 Pandas DataFrame 中存在但另一个中不存在的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板