fork download
  1. import pandas as pd
  2. df = pd.DataFrame(
  3. [['A', '2020-02-02 20:31:00'],
  4. ['A', '2020-02-03 00:52:00'],
  5. ['A', '2020-02-07 23:45:00'],
  6. ['A', '2020-02-08 13:19:00'],
  7. ['A', '2020-02-18 13:16:00'],
  8. ['A', '2020-02-27 12:16:00'],
  9. ['A', '2020-02-28 12:16:00'],
  10. ['B', '2020-02-07 18:57:00'],
  11. ['B', '2020-02-07 21:50:00'],
  12. ['B', '2020-02-12 19:03:00'],
  13. ['C', '2020-02-01 13:50:00'],
  14. ['C', '2020-02-11 15:50:00'],
  15. ['C', '2020-02-21 10:50:00']],
  16. columns = ['ID', 'Date'])
  17.  
  18. df['Date'] = pd.to_datetime(df['Date'])
  19.  
  20. delta = 7
  21.  
  22. print(df.set_index('Date')
  23. .assign(count_last=1)
  24. .groupby('ID')
  25. .rolling(f'{delta}D')
  26. .sum() - 1
  27. )
Success #stdin #stdout 0.56s 62116KB
stdin
Standard input is empty
stdout
                        count_last
ID Date                           
A  2020-02-02 20:31:00         0.0
   2020-02-03 00:52:00         1.0
   2020-02-07 23:45:00         2.0
   2020-02-08 13:19:00         3.0
   2020-02-18 13:16:00         0.0
   2020-02-27 12:16:00         0.0
   2020-02-28 12:16:00         1.0
B  2020-02-07 18:57:00         0.0
   2020-02-07 21:50:00         1.0
   2020-02-12 19:03:00         2.0
C  2020-02-01 13:50:00         0.0
   2020-02-11 15:50:00         0.0
   2020-02-21 10:50:00         0.0