按几乎相似的字符串分组

时间:2016-10-17 04:39:28

标签: python pandas

我有一个包含城市名称和犯罪数量的数据集。数据很脏,例如“纽约”这样的城市名称被写成“纽约”,“纽约我们”,#39;纽约市'曼哈顿纽约'我如何将所有这些城市组合在一起并总结他们的罪行?

我尝试过' difflib'在python中匹配字符串的包,并给你一个分数。它不能很好地工作。我也在python中尝试过geocode包。它限制了您访问api的次数,也无法正常工作。有什么建议?

2 个答案:

答案 0 :(得分:1)

也许这可能会有所帮助:

http://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/

另一种方式:如果一个字符串包含'new'和'york',那么将它标记为'new york city'。

另一种方法:创建所有可能出现的模糊词的字典,并手动标记每个词。并使用该标签将这些模糊单词替换为标签。

答案 1 :(得分:0)

另一种方法是遍历每个条目并剥离空白区域,看它们是否包含基本城市名称。例如'newyork','new york us','new york city','manhattan new york',当剥去白色空间时,将是'newyork','newyorkus','newyorkcity','manhattannewyork',这些都包含单词'newyork'。

这种方法有两种方法,您可以通过并将所有'new york'字符串替换为没有空格且只是'newyork'的字符串,或者您可以即时查看它们。

我在下面写下了一个例子,但由于我不知道你的数据是如何格式化的,所以我不确定它有多大帮助。

crime_count = 0
for (key, val) in dataset:
    if 'newyork' in key.replace(" ", ""):
        crime_count = crime_count + val