2 回答

TA貢獻1735條經(jīng)驗 獲得超5個贊
您可以從中捕獲單詞,words并在替換中使用后向引用將其包裝在*:
import re
import pandas as pd
df = pd.DataFrame([['I like apple pie','apple'],['Nice banana and lemon','banana|lemon']], columns=['text','words'])
df['text'] = df['text'].replace(r'('+df['words']+')', r'*\1*', regex=True)
print(df)
印刷:
text words
0 I like *apple* pie apple
1 Nice *banana* and *lemon* banana|lemon

TA貢獻1805條經(jīng)驗 獲得超9個贊
IIUC使用 (?i)與re.I
df.text.replace(regex=r'(?i)'+ df.words,value="*")
Out[131]:
0 I like * pie
1 Nice * and *
Name: text, dtype: object
由于您更新了問題
df.words=df.words.str.split('|')
s=df.words.apply(pd.Series).stack()
df.text.replace(dict(zip(s,'*'+s+'*')),regex=True)
Out[139]:
0 I like *apple* pie
1 Nice *banana* and *lemon*
Name: text, dtype: object
添加回答
舉報