首页  >  文章  >  后端开发  >  如何识别 Pandas DataFrame 中的所有重复行?

如何识别 Pandas DataFrame 中的所有重复行?

Barbara Streisand
Barbara Streisand原创
2024-10-25 15:15:02986浏览

How to Identify All Duplicate Rows in a Pandas DataFrame?

如何在 Python 中使用 Pandas 获取所有重复项的列表?

问题:

您的 Pandas DataFrame 包含重复行,但使用 duplicated() 方法仅返回第一个重复实例。您需要所有出现的重复行的完整列表以进行手动比较。

解决方案 1:隔离具有重复 ID 的行

  1. 将 Pandas 导入为 pd。
  2. 将数据读入 DataFrame df。
  3. 将 ID 列提取到单独的 Series id 中。
  4. 根据 ID 值是否与中的任何重复 ID 匹配来过滤 df ids[ids.duplicated()]:
<code class="python">df[ids.isin(ids[ids.duplicated()])].sort_values("ID")</code>

虽然此方法有效检索所有重复行,但它会在输出中创建重复的 ID 行。

解决方案 2 :按 ID 分组并过滤重复项

  1. 在 df 上使用 groupby("ID") 按 ID 值对行进行分组。
  2. 过滤结果组以仅保留具有多行的:
<code class="python">pd.concat(g for _, g in df.groupby("ID") if len(g) > 1)</code>

这种方法会产生精简的输出,没有多余的 ID 行。

以上是如何识别 Pandas DataFrame 中的所有重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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