从数据中排除2个字符串

时间:2017-04-16 07:59:01

标签: python regex pandas

我有3种水果及其数量的数据。我想排除' Apple'和#梨;'从我的数据,但遇到以下错误。为什么会这样?

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:|:' str'不支持的操作数类型和' str'

2 个答案:

答案 0 :(得分: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 :(得分:1)

获得相同结果的替代方法是使用isin

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

Out
    Fruit  Qty
1  Orange    4
4  Orange    9