import pandas as pd
df = pd.DataFrame(
[['A', '2020-02-02 20:31:00'],
['A', '2020-02-03 00:52:00'],
['A', '2020-02-07 23:45:00'],
['A', '2020-02-08 13:19:00'],
['A', '2020-02-18 13:16:00'],
['A', '2020-02-27 12:16:00'],
['A', '2020-02-28 12:16:00'],
['B', '2020-02-07 18:57:00'],
['B', '2020-02-07 21:50:00'],
['B', '2020-02-12 19:03:00'],
['C', '2020-02-01 13:50:00'],
['C', '2020-02-11 15:50:00'],
['C', '2020-02-21 10:50:00']],
columns = ['ID', 'Date'])
df['Date'] = pd.to_datetime(df['Date'])
delta = 7
print(df.set_index('Date')
.assign(count_last=1)
.groupby('ID')
.rolling(f'{delta}D')
.sum() - 1
)
aW1wb3J0IHBhbmRhcyBhcyBwZApkZiA9IHBkLkRhdGFGcmFtZSgKICAgICAgICBbWydBJywgJzIwMjAtMDItMDIgMjA6MzE6MDAnXSwKICAgICAgICBbJ0EnLCAnMjAyMC0wMi0wMyAwMDo1MjowMCddLAogICAgICAgIFsnQScsICcyMDIwLTAyLTA3IDIzOjQ1OjAwJ10sCiAgICAgICAgWydBJywgJzIwMjAtMDItMDggMTM6MTk6MDAnXSwKICAgICAgICBbJ0EnLCAnMjAyMC0wMi0xOCAxMzoxNjowMCddLAogICAgICAgIFsnQScsICcyMDIwLTAyLTI3IDEyOjE2OjAwJ10sCiAgICAgICAgWydBJywgJzIwMjAtMDItMjggMTI6MTY6MDAnXSwKICAgICAgICBbJ0InLCAnMjAyMC0wMi0wNyAxODo1NzowMCddLAogICAgICAgIFsnQicsICcyMDIwLTAyLTA3IDIxOjUwOjAwJ10sCiAgICAgICAgWydCJywgJzIwMjAtMDItMTIgMTk6MDM6MDAnXSwKICAgICAgICBbJ0MnLCAnMjAyMC0wMi0wMSAxMzo1MDowMCddLAogICAgICAgIFsnQycsICcyMDIwLTAyLTExIDE1OjUwOjAwJ10sCiAgICAgICAgWydDJywgJzIwMjAtMDItMjEgMTA6NTA6MDAnXV0sCiAgICAgICAgY29sdW1ucyA9IFsnSUQnLCAnRGF0ZSddKQoKZGZbJ0RhdGUnXSA9IHBkLnRvX2RhdGV0aW1lKGRmWydEYXRlJ10pCgpkZWx0YSA9IDcKCnByaW50KGRmLnNldF9pbmRleCgnRGF0ZScpCiAgIC5hc3NpZ24oY291bnRfbGFzdD0xKQogICAuZ3JvdXBieSgnSUQnKQogICAucm9sbGluZyhmJ3tkZWx0YX1EJykKICAgLnN1bSgpIC0gMQop