簡體   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