3 回答

TA貢獻1790條經驗 獲得超9個贊
您可以構建一個函數并使用應用。
def is_in_flag(val, lst):
for item in lst:
if (item in val):
return 1
return 0
terms = ['x','y']
df['Test_Flag'] = df['Description'].apply(is_in_flag ,args=[terms])
df
或者以你的方式:
terms = ['x','y']
df['Test_Flag'] = 0
for t in terms:
df['Test_Flag']=(( df['Test_Flag'] + df.Description.str.contains(t))>0)*1
df

TA貢獻1806條經驗 獲得超5個贊
我建議使用申請:
import pandas
df = pd.DataFrame({'words':['joy','heX','socks','brain','zebra','sexy']})
ts = ['x','y','z']
df['flag'] = df.words.apply(lambda x: sum(t in x.lower() for t in ts) > 0)

TA貢獻1757條經驗 獲得超8個贊
你可以使用正則表達式
pattern = '|'.join(['({s})'.format(s=s) for s in terms])
df['Flag'] = df.words.str.contains(pattern)
添加回答
舉報