我在 pandas 中有下表:
索引 | 成分 | 菜 |
---|---|---|
1 | 土豆 | 馅饼 |
2 | 土豆 | 果汁 |
3 | 土豆 | 薯条 |
4 | 土豆 | 纯净 |
5 | 苹果 | 馅饼 |
6 | 苹果 | 果汁 |
7 | 苹果 | 薯条 |
8 | 苹果 | 纯净 |
并且想要应用以下过滤器: 如果 Ingrediient=='Apple' 则只保留 Dish=['Pie','Juice']
结果应该是这样的:
索引 | 成分 | 菜 |
---|---|---|
1 | 土豆 | 馅饼 |
2 | 土豆 | 果汁 |
3 | 土豆 | 薯条 |
4 | 土豆 | 纯净 |
5 | 苹果 | 馅饼 |
6 | 苹果 | 果汁 |
我该怎么做?
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
您可以按如下方式过滤数据框:
df = df[(df['Ingredient'] == 'Potato') & (df['Dish'] == 'Pie' | df['Dish'] == 'Juice')]