Pandas 对分类值进行条件过滤

问题描述 投票:0回答:2

我在 pandas 中有下表:

索引 成分
1 土豆 馅饼
2 土豆 果汁
3 土豆 薯条
4 土豆 纯净
5 苹果 馅饼
6 苹果 果汁
7 苹果 薯条
8 苹果 纯净

并且想要应用以下过滤器: 如果 Ingrediient=='Apple' 则只保留 Dish=['Pie','Juice']

结果应该是这样的:

索引 成分
1 土豆 馅饼
2 土豆 果汁
3 土豆 薯条
4 土豆 纯净
5 苹果 馅饼
6 苹果 果汁

我该怎么做?

python pandas filter
2个回答
0
投票

IIUC用途:

m = df['Ingredient'].eq('Apple')
out = df[ m & df['Dish'].isin(['Pie','Juice']) | ~m]
print (out)
   Index Ingredient   Dish
0      1     Potato    Pie
1      2     Potato  Juice
2      3     Potato  Fries
3      4     Potato   Pure
4      5      Apple    Pie
5      6      Apple  Juice

0
投票

您可以按如下方式过滤数据框:

df = df[(df['Ingredient'] == 'Potato') & (df['Dish'] == 'Pie' | df['Dish'] == 'Juice')]
© www.soinside.com 2019 - 2024. All rights reserved.