【问题标题】:Pandas fuzzy detect duplicatesPandas 模糊检测重复项
【发布时间】:2016-09-14 12:13:46
【问题描述】:

如何在 pandas 中使用模糊匹配来检测重复行(高效)

如何在没有将 row_i toString() 转换为巨大的 for 循环并将其与所有其他列进行比较的情况下找到一列与所有其他列的重复项?

【问题讨论】:

标签: python pandas fuzzy-search locality-sensitive-hash record-linkage


【解决方案1】:

不是 pandas 特有的,但在 python 生态系统中,dedupe python library 似乎可以满足您的需求。特别是,它允许您分别比较一行的每一列,然后将这些信息组合成一个匹配的概率分数。

【讨论】:

    【解决方案2】:

    pandas-dedupe 是你的朋友。您可以尝试执行以下操作:

    import pandas as pd
    from pandas_deudpe import dedupe_dataframe
    
    df = pd.DataFrame.from_dict({'bank':['bankA', 'bankA', 'bankB', 'bankX'],'email':['email1', 'email1', 'email2', 'email3'],'name':['jon', 'john', 'mark', 'pluto']})
    
    dd = dedupe_dataframe(df, ['bank', 'name', 'email'], sample_size=1)
    

    如果您还想为相同的实体设置规范名称,请设置canonicalize=True

    [我是 pandas-dedupe 贡献者之一]

    【讨论】:

      【解决方案3】:

      现在有一个包可以更轻松地将dedupe library 与熊猫一起使用:pandas-dedupe

      (我是原dedupe库的开发者,不是pandas-dedupe包的开发者)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-26
        • 1970-01-01
        • 2023-04-03
        • 2016-08-26
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 2014-07-14
        相关资源
        最近更新 更多