我有一个数据框(df),包含名称和缩写,如下所示:
Name
ABC CO
XYZ CO LTD
S.A.L.P, S.P.A.
XXX L.P
NUR YER SAN.TIC.LTD
BAAB TERMINALS LTD.
我必须用它们的完整单词替换缩写词,并参考列表。下面是我的方法
import pandas as pd
repl = {'CO' : 'COMPANY','LTD' : 'LIMITED','L.P' : 'LIMITED PARTNERSHIP','LTD.' : 'LIMITED','.LTD' : 'LIMITED'}
repl = {rf'\b{k}\b': v for k, v in repl.items()}
df2 = df['Name'].replace(repl, regex=True)
df2
下面是输出
0 ABC COMPANY
1 XYZ COMPANY LIMITED
2 S.A.LIMITED PARTNERSHIP, S.P.A.
3 XXX LIMITED PARTNERSHIP
4 NUR YER SAN.TIC.LTD
5 BAAB TERMINALS LIMITED.
Name: Name, dtype: object
在这里,S.A.L.p不得用L.p代替
预期产出:
0 ABC COMPANY
1 XYZ COMPANY LIMITED
2 S.A.L.P, S.P.A.
3 XXX LIMITED PARTNERSHIP
4 NUR YER SAN.TIC.LIMITED
5 BAAB TERMINALS LIMITED.
Name: Name, dtype: object
只有当L.p作为一个不同的字符串单独出现时,而不是当它是某个字符串的一部分时,代码才应将其替换为有限合伙。有谁能帮我解决这个问题吗。谢谢
在单词前后加空格,例如L.p:
您可以将此正则表达式与环视一起使用,以确保在
key
前后没有非空格:在这里:
(?<!\S)
:断言前一个字符不是非空格(?!\S)
:断言下一个字符不是非空格相关问题 更多 >
编程相关推荐