繁体   English   中英

计算 pandas 中可能的分组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM