找出频率最高的组合并添加标签
Find out the most frequency combination and add labels
我有一个 table 我的客户数据是这样的:
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
对这个问题有什么想法吗?
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
直截了当的回答:
df.groupby('Customer').apply(
lambda g: (g['Price'] >= 200).sum() > (g['Price'] < 200).sum()
)
对布尔向量求和将 return 个 True
个值。
我有一个 table 我的客户数据是这样的:
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
对这个问题有什么想法吗?
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
直截了当的回答:
df.groupby('Customer').apply(
lambda g: (g['Price'] >= 200).sum() > (g['Price'] < 200).sum()
)
对布尔向量求和将 return 个 True
个值。