如何在条件上对pandas数据帧进行子集化

时间:2016-01-27 17:46:47

标签: python pandas

我有一个像这样的pandas数据框:

 buyer_id meal_type
    139       Veg
    140    NonVeg
    140       Veg
     36    NonVeg
     79       Veg
     79    NonVeg
     79    NonVeg
     72    NonVeg
     72    NonVeg
     65    NonVeg
     65       Veg

现在我希望所有buyer_id只有Veg作为用餐类型,buyer_id所有Veg and NonVeg作为用餐类型和所有buyer_id }只有NonVeg作为膳食类型。

所以,

139 Veg
140 Veg and NonVeg
36  NonVeg
79  Veg and NonVeg

等等。我在Python中执行以下操作,以获取具有VegNonVeg或两者的所有买方ID。

segments_data.buyer_id[segments_data['meal_type']=='Veg' &      
segments_data['meal_type']=='NonVeg']

但它不起作用。请帮忙。

1 个答案:

答案 0 :(得分:1)

buyer_id分组并将meal_type转换为集合:

>>> df.groupby('buyer_id')['meal_type'].apply(set).str.join(' and ')

    buyer_id
36             NonVeg
65     Veg and NonVeg
72             NonVeg
79     Veg and NonVeg
139               Veg
140    Veg and NonVeg
Name: meal_type, dtype: object