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)
您需要contains参数case=False和na=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)