说我有以下数据框:
>>> import pandas as pd
>>> df=pd.DataFrame()
>>> df['Food']=['Orange','Carrot','Apple','Pizza','Cake','Pretzel','Cauliflower']
>>> df
Food
0 Orange
1 Carrot
2 Apple
3 Pizza
4 Cake
5 Pretzel
6 Cauliflower
>>>
然后我有以下字典,其中的键是类别,值是该类别中的值列表:
>>> FoodClasses
{'Vegetable': ['Carrot', 'Cauliflower'], 'Fruit': ['Orange', 'Apple']}
>>>
我想为两个类别(蔬菜和水果)中的每一个添加列到我的数据框中,并在列中填充指示该值是否在该类别中的值。
我目前通过循环遍历每个类别来完成此操作并获得我想要的结果:
>>> for FoodClass in FoodClasses:
... df[FoodClass]=df['Food'].isin(FoodClasses[FoodClass]).astype(int)
...
>>>
>>> df
Food Vegetable Fruit
0 Orange 0 1
1 Carrot 1 0
2 Apple 0 1
3 Pizza 0 0
4 Cake 0 0
5 Pretzel 0 0
6 Cauliflower 1 0
>>>
有没有更好的方法来执行此操作并不涉及循环字典?