gpt4 book ai didi

python - 如何使用 Pandas 获取包含的每个组合的计数

转载 作者:太空狗 更新时间:2023-10-29 18:03:30 24 4
gpt4 key购买 nike

我想弄清楚客户一起购买的服装组合是什么。我可以找出确切的组合,但我无法弄清楚的问题是包括组合 + 其他的计数。

例如,我有:

Cust_num  Item    Rev
Cust1 Shirt1 $40
Cust1 Shirt2 $40
Cust1 Shorts1 $40
Cust2 Shirt1 $40
Cust2 Shorts1 $40

这应该导致:

Combo                  Count
Shirt1,Shirt2,Shorts1 1
Shirt1,Shorts1 2

我能做的最好的就是独特的组合:

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')

但这只是唯一计数。

最佳答案

使用pandas.DataFrame.groupby:

grouped_item = df.groupby('Cust_num')['Item']
subsets = grouped_item.apply(lambda x: set(x)).tolist()
Count = [sum(s2.issubset(s1) for s1 in subsets) for s2 in subsets]
combo = grouped_item.apply(lambda x:','.join(x))
combo = combo.reset_index()
combo['Count']=Count

输出:

  Cust_num                   Item  Count
0 Cust1 Shirt1,Shirt2,Shorts1 1
1 Cust2 Shirt1,Shorts1 2

关于python - 如何使用 Pandas 获取包含的每个组合的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com