【问题标题】:Removing rows of data that are almost duplicates with pandas [closed]使用熊猫删除几乎重复的数据行[关闭]
【发布时间】:2021-12-18 07:31:07
【问题描述】:

我遇到了一个问题,试图从 Pandas DataFrame 中删除“几乎重复”。下面的简短示例。

我有这个:

NUMBER

0 682-21803-405

1 682-21803-420

2 682-21803-430

3 694-3561821-41-1

4 694-3561821-41-4

5 694-3561821-41-5

我想要这个:

NUMBER

0   682-21803-405

3   694-3561821-41-1

我看到一些人在使用正则表达式时遇到了类似的问题,但我不知道如何使用它,我需要帮助。

【问题讨论】:

  • 您首先需要“几乎重复”的内容。比如694-3561821-41-5和694-3561821-43-9是相似的?
  • 欢迎来到 Stack Overflow。你研究过这个吗?在哪里?如果它没有帮助告诉我们原因。你尝试了什么?如果你不尝试,为什么不呢?如果你做了,你做了什么?我们希望看到您最小的尝试来解决它。否则,您似乎没有尝试并希望我们为您编写解决方案。
  • 您好,谢谢。我会考虑添加更多关于我将来已经尝试过的细节。在这种情况下,在我自己的尝试完全没有成功之后,我只是试图保持问题的简洁和直截了当。

标签: python python-3.x pandas dataframe csv


【解决方案1】:

假设要忽略的部分是- 之后的最后一个字段,您可以使用一个简短的正则表达式来删除这部分并切片不重复的部分:

df[~df['NUMBER'].str.replace('-[^-]+$', '', regex=True).duplicated()]

输出:

             NUMBER
0     682-21803-405
3  694-3561821-41-1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多