在python中绘制连续购买之间的月数(装箱)和每个箱子中的客户数量
我的数据如下所示:在python中绘制连续购买之间的月数(装箱)和每个箱子中的客户数量,python,python-3.x,pandas,plotly,Python,Python 3.x,Pandas,Plotly,我的数据如下所示: Customer Product Date C1 P1 2012-01-02 C1 P1 2014-02-21 C1 P1 2016-05-22 C2 P1 2012-02-20 C2 P1 2013-08-02 C1 P1
Customer Product Date
C1 P1 2012-01-02
C1 P1 2014-02-21
C1 P1 2016-05-22
C2 P1 2012-02-20
C2 P1 2013-08-02
C1 P1 2017-06-02
C1 P1 2018-07-11
我必须为每个客户计算两次连续购买之间的月数(箱数),并绘制箱数和每个箱中的客户数之间的图表
附上excel中图表的示例。这里x轴表示连续购买的月份数,y轴表示每个箱子中的客户数
基本上,步骤是为每个客户找到两次购买之间的平均月数,bin月数,并绘制月数bin和每个bin中的客户数之间的条形图
“月”是一个持续28到31天的可变时间量。在我们的分析中,让我们将一个月定义为相当于30天。然后,您可以使用pd.cut
对它们进行装箱并制作直方图:
s = df.sort_values(['Customer', 'Date']) \
.groupby('Customer').apply(lambda g: g['Date'].diff().div(pd.Timedelta(days=30)).mean())
t = pd.cut(s, [10, 15, 20, 30, np.inf], labels=['10-15M', '15-20M', '20-30M', '>30M'])
t.hist()
结果(示例中的两个客户都属于15-20M
bin):
是客户购买产品之间的时差,还是产品内的时差?时差在产品内。我有8种不同的产品,我必须为每种产品建立一个图表