Попробуйте метод truncate
:
df.truncate(before=d1, after=d2)
Он не изменит ваш исходный df
и вернет усеченный.
Из документов:
Function truncate a sorted DataFrame / Series before and/or after
some particular dates.
Parameters
----------
before : date
Truncate before date
after : date
Truncate after date
Returns
-------
truncated : type of caller