Как оказалось, в shift () нет ничего плохого.Фрейм данных индексируется по дате после сдвига, и мне просто нужно было сбросить индекс.
for i in range(0, len(df)+1, 12): #from 0 to end step 12
dfx = df.loc[i:i+11]
dfx.set_index('Date', inplace=True)
dfx = dfx.tshift(-100) #shifting
**dfx = dfx.reset_index()**
.. но теперь он не показывает даты на оси х, aghrrr ...