0

I have a df:

df = Date                id1  amount is_winner
2022-07-14 02:34:20.348.  A.    87.11. False
2022-07-14 02:34:20.348.  B.    77.12. True
2022-07-14 02:37:20.348.  A     89.11. False
2022-07-14 02:37:20.348.  B.    87.12. True
2022-07-14 02:44:20.348.  A.    81.11. True
2022-07-14 02:44:20.348.  B.    87.12. False
2022-07-14 02:54:20.348.  A.    99.11. False
2022-07-14 02:54:20.348.  B.    99.11. True

Now, I want to apply groupby(["date", "id1"]) and have various measures that are based on previous groups (notice data is sorted by date):

df = 
Date                      id1  amount is_winner delta_amount_from_last_win  num_wins_before. num_groups_before. rank_in_prev_group. time_from_prev(minutes)
2022-07-14 02:34:20.348.  A.    87.11. False.            0.                          0.             0.                 nan.                 nan
2022-07-14 02:34:20.348.  B.    77.12. True              0.                          0.             0.                 nan.                 nan
2022-07-14 02:37:20.348.  A     89.11. False.            2.                          0.             1.                   1.                   3
2022-07-14 02:37:20.348.  B.    87.12. True.             10                          1.             1.                    0.                  3
2022-07-14 02:44:20.348.  A.    81.11. True.             -8.                         0.             2.                    1.                  7
2022-07-14 02:44:20.348.  B.    87.12. False.             0.                         1.             2.                   0.                   7
2022-07-14 02:54:20.348.  A.    99.11. False.            18.                         1              3.                   0.                   10
2022-07-14 02:54:20.348.  B.    99.12. True.             12                          2.             3.                    1.                  10

How can it be done efficiently?

Cranjis
  • 1,590
  • 8
  • 31
  • 64

0 Answers0