我想在我的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
答案 0 :(得分:2)
您需要contains
参数case=False
和na=False
:
df['Test_Flag'] = np.where(df['Title'].str.contains("test", case=False, na=False), 'T', '')
样品:
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