2017-05-12 14 views
-2
for i in range(len(ingName)): 
    x = ingName[i] 
    #check if the string contains IngName ignoring uppercase Sub_Seg_Sub_Cat 
    df = df_grocery[df_grocery['Sub_Seg_Sub_Cat'].str.contains(str(ingName[i]), case=False)] 
    df['IngredientName'] = ingName[i] 
    df['IngredientID'] = ingID[i] 

    #write it out to a csv 
    df.to_csv("ingred11.csv", mode = 'a', encoding='utf-8', header=None) 

檢查某列中的某行是否包含某些單詞的最佳方法是什麼?我正在使用str.contains,它正在獲取子字符串。我想要在哪裏檢查意大利麪醬中是否有醬汁,而不是醬汁是否存在於意大利麪醬中,目前這就是它的作用,並且無論如何要實現這一點?如何檢查一行是否包含單詞列表中的某個字符串

感謝

+0

嘿@Andy海登,謝謝你,但是如果我在 S = pd.Series([ 「狗貓」, 「狗」, 「羊」])s.isin([ 「貓」 的類型, 「狗」])但我希望它能夠知道它的真實 –

回答

0

這是你所追求的?

s = pd.Series(["cat dog", "dog", "sheep"]) 

# check if 'cat' or 'dog' is present in the Series. 
s.apply(lambda x: np.max(np.in1d(np.asarray(x.split()), ['cat', 'dog']))) 
Out[785]: 
0  True 
1  True 
2 False 
+0

絕對,謝謝你,我投了你的答案,但我決定通過另一條路線昨天與我正在使用的文件,但我會保存這個,並回到它,因爲我可能很快就需要它。 –

+0

不用擔心。沒有看到你的投票 – Allen

1

可以使用isin方法:

In [11]: s = pd.Series(["cat", "dog", "sheep"]) 

In [12]: s.isin(["cat", "dog"]) 
Out[12]: 
0  True 
1  True 
2 False 
dtype: bool 
+0

如果我輸入它說錯誤 s = pd.Series([「貓狗」,「狗」,「綿羊」]) s。 isin([「貓」,「狗」]) 但我希望它能夠知道它的真實 –

+0

@AbifoluwaOni我不明白你的意思。第一行是真的,因爲''貓''在'[「貓」,「狗」]'... –

相關問題