如何解决动态标准化熊猫中的公司名称
df:
公司名称 |
---|
美国广播公司 |
abc Inc Bolingbrook |
企业badh Shah |
企业财务 |
企业财务部 |
贝斯舞 |
巴斯舞蹈学校 |
大卫华纳 |
大卫华纳房地产公司 |
大卫·沃纳拉尼塔·桑帕斯 |
阿尼莎·桑帕斯博士 |
德拉尼尔·库马尔·吉安·普拉萨德 |
Dranil and kumar Mortgage Corporation |
Drbadh Shah |
德文基帕特尔 |
克里希纳博士和拉玛林加姆 |
我想标准化 company_name 以便输出看起来像这样
输出df:
公司名称 | standardized_company_name |
---|---|
美国广播公司 | 美国广播公司 |
abc Inc Bolingbrook | 美国广播公司 |
企业badh Shah | 企业财务 |
企业财务 | 企业财务 |
企业财务部 | 企业财务 |
贝斯舞 | 巴斯舞蹈学校 |
巴斯舞蹈学校 | 巴斯舞蹈学校 |
大卫华纳 | 大卫华纳 |
大卫华纳房地产公司 | 大卫华纳 |
大卫·沃纳拉尼塔·桑帕斯 | 大卫华纳 |
阿尼莎·桑帕斯博士 | 阿妮莎·桑帕斯 |
德拉尼尔·库马尔·吉安·普拉萨德 | 阿尼尔·库马尔 |
Dranil and Gyan Mortgage Corporation | 阿尼尔·库马尔 |
Drbadh Shah | badh Shah |
德文基帕特尔 | 文奇帕特尔 |
克里希纳博士和拉玛林甘博士 | 克里希纳和拉玛林甘 |
注意:标准化没有规则,但相似的company_names应该有相同的standardized_company_name
例如:standardized_company_name 也可以这样
我尝试使用正则表达式替换删除停用词,但它无效。提前致谢........
我也尝试过拆分
def func(val):
val=val.split(' ',2)
return ' '.join([val[0]])
name = unique[['company_name','state']]
name['standardized_company_name']=name['company_name'].apply(func)
但我得到的是
我得到的输出:
公司名称 | standardized_company_name |
---|---|
美国广播公司 | ABC |
abc Inc Bolingbrook | ABC |
企业badh Shah | 企业 |
企业财务 | 企业 |
企业财务部 | 企业 |
贝斯舞 | 低音 |
巴斯舞蹈学校 | 低音 |
大卫华纳 | 大卫 |
大卫华纳房地产公司 | 大卫 |
大卫·沃纳拉尼塔·桑帕斯 | 大卫 |
阿尼莎·桑帕斯博士 | 博士 |
德拉尼尔·库马尔·吉安·普拉萨德 | 德拉尼尔 |
Dranil and kumar Mortgage Corporation | 德拉尼尔 |
Drbadh Shah | 德巴德 |
德文基帕特尔 | 醉酒 |
克里希纳博士和拉玛林甘博士 | 博士 |
解决方法
首先创建一个为您执行此操作的函数:-
def func(val):
val=val.split(' ',2)
if len(val)==1:
return val[0]
else:
return ' '.join([val[0],val[1]])
现在只需使用 apply()
方法:-
df['standardized_company_name']=df['company_name'].apply(func)
输出:-
company_name standardized_company_namedf
0 abc Inc abc Inc
1 abc Inc Bolingbrook abc Inc
2 enterprise badh Shah enterprise badh
3 enterprise Financial enterprise Financial
4 enterprise Financial Shah enterprise Financial
5 bass Dance bass Dance
6 bass School of Dance bass School
7 david Warner david Warner
8 david Warner Real Estate Inc david Warner
9 david Warneranita sampath david Warneranita
然后当您在评论中提到您的情况时,请使用:-
df['standardized_company_name']=df['standardized_company_name'].str.replace('badh','Financial')
df['standardized_company_name']=df['standardized_company_name'].str.replace('bass Dance','bass School')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。