Python:从dataframe中删除不匹配多个条件的行

Python:从dataframe中删除不匹配多个条件的行,python,pandas,Python,Pandas,假设我有一个使用pandas.dataframe的列,如下所示: index fruits origin attribute 1 apple USA tasty 2 apple France yummy 3 apple USA juicy 4 apple England juicy 5 apple Japan normal 6

假设我有一个使用pandas.dataframe的列,如下所示:

index  fruits    origin      attribute
 1     apple     USA         tasty
 2     apple     France      yummy
 3     apple     USA         juicy
 4     apple     England     juicy
 5     apple     Japan       normal
 6     banana    Canada      nice
 7     banana    Italy       good
 .....
我想选择法国的美味苹果(2),然后从表中删除不匹配的苹果,如下所示:

index  fruits    origin      attribute
 1     apple     France      yummy
 2     banana    Canada      nice
 3     banana    Italy       good
 .....
我认为下面的方法应该有效。但事实并非如此:

df.drop(df[(df.fruits == "apple") & (df.origin != "France") | (df.fruits == "apple") & (df.attribute != "yummy")].index)
然后我尝试了以下同样不起作用的方法:

df = df[~df[(df.fruits == "apple") & (df.origin != "France") & (df.attribute != "yummy")]

有什么帮助吗,伙计们?

如果按匹配条件选择:

df[(df.fruits != 'apple') | ((df.fruits == 'apple') & (df.origin == 'France') & (df.attribute == 'yummy'))]

#index  fruits  origin  attribute
#1  2    apple  France      yummy
#5  6   banana  Canada       nice
#6  7   banana   Italy       good

如果按不匹配条件删除:需要删除的是
水果
是苹果但
产地
不匹配
法国
属性
不匹配
美味

df[~((df.fruits == 'apple') & ((df.origin != 'France') | (df.attribute != 'yummy')))]

# index fruits  origin  attribute
#1    2  apple  France      yummy
#5    6 banana  Canada       nice
#6    7 banana   Italy       good

如果按匹配条件选择:

df[(df.fruits != 'apple') | ((df.fruits == 'apple') & (df.origin == 'France') & (df.attribute == 'yummy'))]

#index  fruits  origin  attribute
#1  2    apple  France      yummy
#5  6   banana  Canada       nice
#6  7   banana   Italy       good

如果按不匹配条件删除:需要删除的是
水果
是苹果但
产地
不匹配
法国
属性
不匹配
美味

df[~((df.fruits == 'apple') & ((df.origin != 'France') | (df.attribute != 'yummy')))]

# index fruits  origin  attribute
#1    2  apple  France      yummy
#5    6 banana  Canada       nice
#6    7 banana   Italy       good

@Kevin Yan感谢您让我的问题更具可读性!您可以使用PC上的快捷键CTL+k或Mac上的CMD+k快速格式化代码段。@Kevin Yan感谢您使我的问题更具可读性!您可以在PC上使用快捷键CTL+k或在Mac上使用CMD+k快速格式化代码段。