如何在熊猫中使用模糊匹配来检测重复行(有效)
如何在没有将 row_i toString() 转换为巨大的 for 循环并将其与所有其他列进行比较的情况下找到一列与所有其他列的重复项?
不是特定于熊猫的,但在 python 生态系统中,重复数据删除 python 库似乎可以满足您的需求。特别是,它允许您分别比较一行的每一列,然后将信息组合成一个匹配的概率分数。
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 贡献者之一]
现在有一个包可以更轻松地在 pandas 中使用dedupe 库:pandas-dedupe
(我是原始 dedupe 库的开发人员,但不是 pandas-dedupe 包的开发人员)