我有一个像这样的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中执行以下操作,以获取具有Veg
,NonVeg
或两者的所有买方ID。
segments_data.buyer_id[segments_data['meal_type']=='Veg' &
segments_data['meal_type']=='NonVeg']
但它不起作用。请帮忙。
答案 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