我想弄清楚顾客一起买的衣服是什么组合。我能算出确切的组合,但我搞不清的问题是包括组合+其他组合的计数。在
例如,我有:
Cust_num Item Rev
Cust1 Shirt1 $40
Cust1 Shirt2 $40
Cust1 Shorts1 $40
Cust2 Shirt1 $40
Cust2 Shorts1 $40
这将导致:
^{pr2}$我所能做的就是独特的组合:
Combo Count
Shirt1,Shirt2,Shorts1 1
Shirt1,Shorts1 1
我试过了:
df = df.pivot(index='Cust_num',columns='Item').sum()
df[df.notnull()] = "x"
df = df.loc[:,"Shirt1":].replace("x", pd.Series(df.columns, df.columns))
col = df.stack().groupby(level=0).apply(','.join)
df2 = pd.DataFrame(col)
df2.groupby([0]).size().reset_index(name='counts')
但这只是独一无二的。在
我认为你需要先创建一个项目的组合。在
How to get all possible combinations of a list’s elements?
我使用了danh的答案中的函数。在
并使用
^{pr2}$groupby
每个客户获得他们的项目组合。在然后转换为
Series
并使用value_counts()
。在迟答,但您可以使用:
^{pr2}$
使用
pandas.DataFrame.groupby
:输出:
^{pr2}$相关问题 更多 >
编程相关推荐