[英]Count possible grouping in pandas
我不知道如何以有效的方式计算 pandas 列中的可能组。 我想对客户购买中重复次数最多的产品进行分组。 例如:
客户 | 产品 |
---|---|
1 | 甲,乙 |
2 | B,C,D |
3 | A,B,C |
4 | C,D,E |
5 | A,B,C,D |
Groups = {A,B}, {C,D}, {A,B,C}, {B,C}, {B,C,D}
Count of Group {A,B} = 3 (Client 1-3-5)
Count of Group {C,D} = 3 (Client 2-4)
Count of Group {A,B,C} = 2 (Client 3-5)
Count of Group {B,C} = 3 (Client 2-3-5)
Count of Group {B,C,D} = 2 (Client 2,5)
让我们尝试get_dummies
来分离Products
,然后遍历组并计数:
Groups = [{'A','B'}, {'C','D'}, {'A','B','C'}, {'B','C'}, {'B','C','D'}]
s = df.Product.str.get_dummies(',')
out = pd.Series([s[list(group)].all(1).sum() for group in Groups],
index=list(map(tuple, Groups)))
Output:
(A, B) 3
(C, D) 3
(C, A, B) 2
(C, B) 3
(C, D, B) 2
dtype: int64
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.