首页  >  文章  >  后端开发  >  如何查找一个数据帧中存在但另一个数据帧中不存在的行(比较 df1 和 df2)?

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

Susan Sarandon
Susan Sarandon原创
2024-10-19 21:07:03655浏览

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)

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

以上是如何查找一个数据帧中存在但另一个数据帧中不存在的行(比较 df1 和 df2)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn