2017-03-27 85 views
0

我想爲我的python pandas dataframe df添加一個標誌,如果Title列中的一個條目包含單詞test(大寫或小寫或全部大寫),我想添加一個標誌T在新列testpython pandas if column string contains word flag

這給了我一個錯誤,不佔全部大寫的情況:

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

ValueError: Length of values does not match length of index 

回答

2

您需要contains與參數case=Falsena=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 
+0

如何我可以解釋所有大寫情況,如'TEST'嗎? – jeangelj

+0

我認爲需要參數'case = False' – jezrael

+0

謝謝 - 我試過了,但是它也應用空白行的標記 – jeangelj