我使用了以下代碼
remove_words=['Conference Call - Final.rtf','Conference Call - F(2).rtf','Final(2).rtf']
pat= '|'.join(remove_words)
pat
df['title'] = df['conference_name'].str.replace(pat,' ')
但我的結果是
。
我的代碼成功替換了
[電話會議 - 最后.rtf]。
但卻無法替換
[電話會議 - F(2).rtf][Final(2).rtf] 。
我想要的輸出應該是替換所有通過的子字串。
uj5u.com熱心網友回復:
你可以使用re模塊來洗掉特定的字串,如:
re.sub("{Conference Call - Final. rtf}",'',df['conference_name'] [0]
uj5u.com熱心網友回復:
正如Charles Duffy在評論中提到的,小括號在正則運算式中具有特殊的意義(標志著捕獲組),而且你使用的是str.replace方法,其默認引數regex=True。因此,你的模式中的(2)干擾了regex搜索和替換,你將不得不轉義這些符號,以表示你正在使用小括號的字面意思,而不是作為一個捕獲組。
讓我們這樣做:
remove_words=['Conference Call - Final.rtf','Conference Call - F(2).rtf','Final(2).rtf']
pat = '|'.join(re.escape(w) for W in remove_words)
df['title'] = df['conference_name'].str.replace(pat, ')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307880.html
標籤:
下一篇:迭代器的東西,如str
