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