Установить BillDate в качестве индекса после приведения его к дате / времени
df.set_index(pd.to_datetime(df['BillDate']), inplace=True)
df
Избавьтесь от BillDate из столбцов теперь, когда вы переместили его в индекс
df.drop(columns=['BillDate'], inplace=True)
Resample к требуемому периоду, подсчитайте сумму и процентное изменение
df.resample('W')['S2Rate'].sum().pct_change().to_frame()
Обратите внимание на повторную выборку работ, взяв последнее значение в периоде.
'W'
-установка даты до воскресенья
'M'
- установка даты до последней даты месяца