如何在一个条件下子集数据帧

2024-10-02 22:29:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个熊猫数据帧:

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

但它不起作用。请帮忙


Tags: and数据id类型datatypebuyer膳食
1条回答
网友
1楼 · 发布于 2024-10-02 22:29:32

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

相关问题 更多 >