Python 如何按比例进行分组?
我有以下数据帧Python 如何按比例进行分组?,python,pandas,Python,Pandas,我有以下数据帧 product Dates Times Sale level_1 0 ACN 2020-12-23 09:15:00 25 1 ACN 2020-12-23 09:20:00 30 2 ACN 2020-12-24 09:15:00 50 3 ACN 2020-12-24 09:20:00 45 0
product Dates Times Sale
level_1
0 ACN 2020-12-23 09:15:00 25
1 ACN 2020-12-23 09:20:00 30
2 ACN 2020-12-24 09:15:00 50
3 ACN 2020-12-24 09:20:00 45
0 ACN2 2020-12-23 09:15:00 80
1 ACN2 2020-12-23 09:20:00 55
2 ACN2 2020-12-24 09:15:00 20
3 ACN2 2020-12-24 09:20:00 110
我想要所有产品在前一天同一时间的销售额比率
12月24日9:15时表示产品ACN
销售比率=50/25=2(此处25为前一天同一时间)
我想要的是这个
product Dates Times Sale Sale_ratio
level_1
0 ACN 2020-12-23 09:15:00 25 Nan
1 ACN 2020-12-23 09:20:00 30 Nan
2 ACN 2020-12-24 09:15:00 50 2
3 ACN 2020-12-24 09:20:00 45 1.5
0 ACN2 2020-12-23 09:15:00 80 Nan
1 ACN2 2020-12-23 09:20:00 55 Nan
2 ACN2 2020-12-24 09:15:00 20 0.25
3 ACN2 2020-12-24 09:20:00 110 2
让我们试试groupby,transform row/rwo.shift()
df['Sale_ratio']=df.groupby(['product','Times'])['Sale'].transform(lambda x: x/(x.shift()))
product Dates Times Sale Sale_ratio
level_1
0 ACN 2020-12-23 09:15:00 25 NaN
1 ACN 2020-12-23 09:20:00 30 NaN
2 ACN 2020-12-24 09:15:00 50 2.00
3 ACN 2020-12-24 09:20:00 45 1.50
0 ACN2 2020-12-23 09:15:00 80 NaN
1 ACN2 2020-12-23 09:20:00 55 NaN
2 ACN2 2020-12-24 09:15:00 20 0.25
3 ACN2 2020-12-24 09:20:00 110 2.00