我有一個資料框,其中包含一個名為 Keyword 的列。大約有 100 萬個關鍵字。我想洗掉關鍵字包含我存盤在串列中的單詞的所有行。
以下是串列中存盤的一些單詞:
excluded_words = ['nz','ca']
我嘗試了以下代碼:
df[~df['Keyword'].str.contains('|'.join(exclude_words), regex = True)]
這段代碼非常快。做它的作業,但有一個小問題。
它正在洗掉任何包含任何單詞的關鍵字,包括“ca”。我只想洗掉“ca”是單獨單詞的那些關鍵字。
例如,假設我們有兩個以下關鍵字
鑄鐵污水泵
加利福尼亞附近的污水泵維修服務
第一個關鍵字不應該被洗掉,因為“ca”只是關鍵字“cast”的一部分,而不僅僅是一個詞本身。第二個關鍵字肯定應該洗掉,因為“ca”是那里的一個詞。
如何修改代碼使其可以處理?先感謝您。
uj5u.com熱心網友回復:
您可以將要排除的每個單詞括起來r'\b',這是一個原始 Python 字串,它表示單詞邊界 ( re.pydocs ) 的正則運算式特殊序列:
excluded_words = ['nz', 'ca']
excluded_words = [r'\b' x r'\b' for x in excluded_words]
df[~df['Keyword'].str.contains('|'.join(excluded_words), regex=True)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414113.html
標籤:
