python pandas 如果列字符串包含单词标志

jea*_*elj 4 python string numpy pandas

我想向我的 python pandas dataframe df 添加一个标志,如果列中的条目Title包含单词test(大写或小写或全部大写),我想添加T一个新列test

这给了我一个错误,并且没有考虑所有大写场景:

df['Test_Flag'] = np.where(df[df['Title'].str.contains("test|Test")==True], 'T', '')

ValueError: Length of values does not match length of index
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 8

您需要contains参数case=Falsena=False

df['Test_Flag'] = np.where(df['Title'].str.contains("test", case=False, na=False), 'T', '')
Run Code Online (Sandbox Code Playgroud)

样本:

df = pd.DataFrame({'Title':['test','Test',np.nan, 'a']})
df['Test_Flag'] = np.where(df['Title'].str.contains("test", case=False, na=False), 'T', '')
print (df)
  Title Test_Flag
0  test         T
1  Test         T
2   NaN          
3     a  
Run Code Online (Sandbox Code Playgroud)