找出最频率组合并添加标签

时间:2017-05-11 08:05:29

标签: python pandas group-by frequency pandas-groupby

我有一张表格,其中包含我的客户数据:

Customer    Price
AAA            100
AAA            100
AAA            200
BBB            100
BBB            220
BBB            200
BBB            200

我想要做的是找出条件为number of price >= 200 is more than number of price < 200的客户,并为他们添加标签。 例如:

Customer    LABELS
AAA            FALSE
BBB            TRUE

有关此问题的任何想法吗?

2 个答案:

答案 0 :(得分:5)

df.Price.ge(200).groupby(df.Customer).mean().gt(.5)

Customer
AAA    False
BBB     True
Name: Price, dtype: bool

或者如果你坚持你的格式

df.Price.ge(200).groupby(df.Customer).mean().gt(.5).reset_index(name='Labels')

  Customer  Labels
0      AAA   False
1      BBB    True

答案 1 :(得分:2)

直截了当的答案:

df.groupby('Customer').apply(
    lambda g: (g['Price'] >= 200).sum() > (g['Price'] < 200).sum()
)

对布尔向量求和将返回True值的数量。