У меня есть такой набор данных:
state,date,events_per_day
AM,2020-03-01,100
AM,2020-03-02,120
AM,2020-03-15,200
BA,2020-03-16,80
BA,2020-03-20,100
BA,2020-03-29,150
RS,2020-04-01,80
RS,2020-04-05,100
RS,2020-04-11,160
Теперь мне нужно вычислить разницу между датой в первой строке каждой группы и датой в текущей строке. т.е. первая строка каждой группы:
- для группы «AM» первая дата 2020-03-01;
- для группы «БА» первая дата 2020-03-16;
- для группы "RS" это 2020-04-01.
В итоге я хочу получить следующий результат:
state,date,events_per_day,days_after_first_event
AM,2020-03-01,100,0
AM,2020-03-02,120,1 <--- 2020-03-02 - 2020-03-01
AM,2020-03-15,200,14 <--- 2020-03-14 - 2020-03-01
BA,2020-03-16,80,0
BA,2020-03-20,100,4 <--- 2020-03-20 - 2020-03-16
BA,2020-03-29,150,13 <--- 2020-03-29 - 2020-03-16
RS,2020-04-01,80,0
RS,2020-04-05,100,4 <--- 2020-04-05 - 2020-04-01
RS,2020-04-11,160,10 <--- 2020-04-11 - 2020-04-01
Я нашел Как рассчитать разницу во времени по группам, используя pandas? , и это почти к тому, что я хочу. Однако diff () возвращает разницу между последовательными строками, и мне нужна разница между текущей и первой строками.
Как я могу это сделать?