6

使用 str.contains 时是否有等价物?

由于“Sa”,以下代码错误地将“Said Business School”列在类别中。如果我可以创建一个单词边界,它将解决问题。在搞砸之后放一个空格。我正在使用熊猫,它们是 dfs。我知道我可以使用正则表达式,但只是好奇我是否可以使用字符串来使其更快

gprivate_n = ('Co|Inc|Llc|Group|Ltd|Corp|Plc|Sa |Insurance|Ag|As|Media|&|Corporation')
df.loc[df[df.Name.str.contains('{0}'.format(gprivate_n))].index, "Private"] = 1 
4

2 回答 2

5

这与正则表达式中的旧 Python 问题一样,'\b'应该作为raw-string r'\b...'传递。或者不太理想的是双转义 ( '\\b')。

所以你的正则表达式应该是:

gprivate_n = (r'\b(Co|Inc|Llc|Group|Ltd|Corp|Plc|Sa |Insurance|Ag|As|Media|&|Corporation)')
于 2020-02-17T21:25:10.957 回答
1

单词边界不是字符,因此您无法使用.contains. 您需要使用正则表达式或将字符串拆分为单词,然后检查您当前在gprivate_n.

于 2014-03-12T21:05:12.253 回答