繁体   English   中英

如何在pandas str.contains中使用\\b字边界?

[英]How to use \b word boundary in pandas str.contains?

使用 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 

这与正则表达式中'\\b'旧 Python 问题相同,其中'\\b'应该作为原始字符串r'\\b...'传递。 或者不太理想,双重转义( '\\\\b' )。

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

gprivate_n = (r'\b(Co|Inc|Llc|Group|Ltd|Corp|Plc|Sa |Insurance|Ag|As|Media|&|Corporation)')

单词边界不是字符,因此您无法使用.contains找到它。 您需要使用正则表达式或将字符串拆分为单词,然后检查您当前在gprivate_n定义的集合中每个单词的成员资格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM