”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何查找一个数据帧中存在但另一个数据帧中不存在的行(比较 df1 和 df2)?

如何查找一个数据帧中存在但另一个数据帧中不存在的行(比较 df1 和 df2)?

发布于2024-11-08
浏览:707

How to Find Rows Present in One Dataframe but Not in Another (Comparing df1 and df2)?

比较数据帧:查找一个中存在但另一个中不存在的行

比较数据帧以识别差异对于数据质量保证和合并至关重要运营。在本例中,我们有两个具有特定结构的数据帧(df1 和 df2),需要确定 df2 中存在但 df1 中不存在的行。

最初,尝试使用 df1 != df2 比较数据帧,结果是一个错误。此方法仅适用于具有相同行和列的数据框。为了找到对称差异,我们需要一种不同的方法。

一种方法涉及连接数据帧:

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)

然后,按所有列对连接的数据帧进行分组:

df_gpby = df.groupby(list(df.columns))

接下来,我们通过获取仅存在一行的索引值来识别唯一记录:

idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]

使用这些索引,我们可以过滤数据帧以获得所需的结果:

df.reindex(idx)

此方法提供 df2 中存在但不存在的行在 df1 中基于日期索引和 Fruit 列的比较。

版本声明 本文转载于:1729343178如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3