2017-04-16 16 views
1

果物とその量に関する3種類のデータがあります。自分のデータから「Apple」と「Pear」を除外したいが、以下のエラーが発生する。それはなぜそうですか?データから2つの文字列を除外します

import pandas as pd 

df=(pd.DataFrame({'Fruit':['Apple','Orange','Pear','Apple','Orange'] 
        ,'Qty':[3,4,1,7,9]})) 


df=df[df['Fruit'].str.contains('Apple'|'Pear')==False] 
print(df) 

TypeError: unsupported operand type(s) for |: 'str' and 'str'

答えて

3

|演算子は文字列自体にする必要があります:

df[df['Fruit'].str.contains('Apple|Pear')==False] 

あるいは、否定演算子と:

df[~df['Fruit'].str.contains('Apple|Pear')] 
Out: 
    Fruit Qty 
1 Orange 4 
4 Orange 9 
1

同じ結果を得るための別の方法がありますisin

df[~df['Fruit'].isin(['Apple','Pear'])] 

Out 
    Fruit Qty 
1 Orange 4 
4 Orange 9 
関連する問題