gpt4 book ai didi

python - 如何规范化名称

转载 作者:太空狗 更新时间:2023-10-29 22:26:42 24 4
gpt4 key购买 nike

我正在使用 pandas 数据框,我有每个公司都有客户的数据。然而,公司名称略有不同,但最终会影响数据。示例:

Company    Customers
AAAB 1,000
AAAB Inc. 900
The AAAB Inc. 20
AAAB the INC 10

我想从具有非标准名称的几家不同公司的数据库中获取总客户数。知道我应该从哪里开始吗?

最佳答案

我记得读过this blog关于fuzzywuzzy library (查看 another question ),可以这样做:

pip install fuzzywuzzy

您可以使用它的 partial_ratio 函数来“模糊匹配”字符串:

In [11]: from fuzzywuzzy.fuzz import partial_ratio

In [12]: partial_ratio('AAAB', 'the AAAB inc.')
Out[12]: 100

这似乎对它是一个很好的匹配充满信心!

In [13]: partial_ratio('AAAB', 'AAPL')
Out[13]: 50

In [14]: partial_ratio('AAAB', 'Google')
Out[14]: 0

我们可以在实际公司列表中取最佳匹配(假设你有):

In [15]: co_list = ['AAAB', 'AAPL', 'GOOG']

In [16]: df.Company.apply(lambda mistyped_co: max(co_list,
key=lambda co: partial_ratio(mistyped_co, co)))
Out[16]:
0 AAAB
1 AAAB
2 AAAB
3 AAAB
Name: Company, dtype: object

我强烈怀疑 scikit learn 或 numpy 库中有一些东西可以在大型数据集上更有效地执行此操作......但这应该可以完成工作。

如果您没有公司列表,您可能需要做一些更聪明的事情...

关于python - 如何规范化名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19437631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com