我想对数据框进行分组和求和。标准 groupby 函数将行中完全相同的字符串分组在一起,但我需要在类似的字符串上完成此操作。例如-:
United States | 10
Germnay | 23
Unaited Staetes | 20
Germany | 21
Germanny | 32
Uniited Staites | 30
结果应该是 -:
United States 60
Germnay 76
名称的顺序并不那么重要。这些值的总和是。
非常感谢:)
编辑:
也许创建一个 ID 列来为相似的国家/地区提供相同的 ID 会更简单。然后我就可以对此进行分组。
最佳答案
不是解决方案,而是一种技巧,如果您正在做一些快速而肮脏的事情,可能会有所帮助
- 小写国家/地区名称
- 删除国家/地区名称中的元音
- 删除连续出现的辅音
以这种方式转换数据后,您可以使用普通的 groupby 并且它应该工作得很好。
我建议这样做,因为您的数据似乎是用户输入的国家/地区名称。
<小时/>另一个想法:
预处理步骤:
- 使用经过国家/地区名称训练的拼写校正器从错误的拼写中猜测国家/地区名称 ( https://norvig.com/spell-correct.html )
- 使用它来转换每一行数据。
然后使用groupby进行分组。
关于python - 如何对字符串的相似度进行分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54255694/