【问题标题】:Delete same name but similar address in csv在csv中删除相同名称但相似的地址
【发布时间】:2021-02-02 03:47:10
【问题描述】:

所以我有这样的数据:

Restaurant         Rating             Address
Birdman              5                18 Parc SCBD, Tower B, Lantai Ground, Jl. Jenderal Sudirman Kav 52 - 53
Bistecca             4                18 Parc SCBD, Tower C, Lantai Ground, Jl. Jenderal Sudirman Kav 52-53, SCBD, Jakarta
Lake View            5                The Spring Club, Jl. Springs Boulevard Blok C No. 1
Lake View Cafe       4.5              The Springs Club, Jl. Springs Boulevard Blok C No. 1
Henshin              4.2              The Westin Jakarta, Lantai 67 - 69, Jl. HR Rasuna Said Kavling C No. 22A
Henshin              4.4              The Westin Jakarta, Lantai 67-69, Jl. H. R. Rasuna Said, Kuningan, Jakarta 12940
Hua Shen             4.3              THR Lokasari, Jl. Mangga Besar Raya
KFC                  4.3              THR Lokasari, Jl. Mangga Besar Raya

这是 26k 餐厅列表的一些示例,包括它们的属性,如评级、地址等,来自两个不同的网站。将它们合并到一个 csv 中,这样可以填补彼此缺少的餐厅名称数据。我需要的是摆脱具有相同名称和相同地址的行。但是正如您所看到的,有一些名称相同但地址相似的数据,即使第一个“Henshin”带有块和编号,而第二个没有它但有一个地区和邮政编码。

而且有不同的餐厅名称但相同的地址。当然,我的 csv 上有一行具有相同名称和地址的行。但对我来说困难的是像上面那样的行。有没有办法删除同名但地址相似的行?来自 Excel 或 Python。

【问题讨论】:

    标签: python excel csv


    【解决方案1】:

    使用地址的相似度得分可以解决这个问题。 python 中用于此的库之一是来自 difflib 的 SequenceMatcher。 您必须进行命中和试验才能获得要过滤的阈值。

    from difflib import SequenceMatcher
    def similar(a, b):
        return SequenceMatcher(None, a, b).ratio()
    score = similar(address1 , address2)
    

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 1970-01-01
      • 2023-03-09
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多