Pandas从Dictionary创建指标变量

时间:2016-03-22 16:14:51

标签: python pandas

说我有以下数据框:

>>> 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
>>> 

有没有更好的方法来执行此操作并不涉及循环字典?

0 个答案:

没有答案