2016-03-22 48 views
0

我有一個看起來像這樣的數據集。檢查一個字符串是否包含python中的另一個子字符串

**name**  **url**    **title** 
Microsoft asdfgaethgaetgh Microsoft Is a big company 
Apple  aeiurghp   iphone is a Apple product 
Google  iailsu   Yahoo, Bing Profit Rises 

我想用一個標誌,其中,如果「名」的單元格的值出現在「標題」的單元格值「真」是。否則,「假」

我使用這樣的事情

df['flag'] = (df.name).isin(df.title) 

但是這給所有的標誌爲「假」,whereaas前兩個標誌應該是「真」

哪有我照顧這個?

+3

什麼是'isin'?只需使用'in'運算符:''Microsoft'in'Microsoft is a large company'' – poke

回答

1

這也可用於:

criteria = lambda row : row['name'] in row['title'] 
df['flag'] = df.apply(criteria, axis =1) 
0

您可以使用df['flag'] = True if df.name in df.title else False 代碼使用單一行,如果你想要的名稱列表中搜索name else條件

+2

正如denis的答案所示,對於已經解決的問題,不需要指定值(在這種情況下爲'True'和'False')到那些價值。 – TigerhawkT3

+0

我認爲這是更具代表性的:) –

+0

它'代表'print('alice'如果usr_name =='alice'else'bob'if usr_name =='bob'else'charlie'if usr_name =='charlie'else ...)'。換句話說,不。 – TigerhawkT3

0

isin纔會工作。要搜索子串使用str.contains而不是

df.title.str.contains(df.name) 
0

樣品是這樣的;

if df[name] in df[title]: 
         return true 
0

您的代碼應該是這樣的

df['flag'] = (df.name in df.title) 
相關問題