ts=pd.DataFrame(np.arange(3000).reshape(1500,2),
index=pd.date_range(start='20150101',periods=1500),
columns=['A','B'])
ts['C']=ts['A'].shift(periods=1,freq='10D',axis=0,fill_value=None)
Данные результата будут выглядеть так:
A B C
2015-01-01 0 1 NaN
2015-01-02 2 3 NaN
2015-01-03 4 5 NaN
2015-01-04 6 7 NaN
2015-01-05 8 9 NaN
2015-01-06 10 11 NaN
2015-01-07 12 13 NaN
2015-01-08 14 15 NaN
2015-01-09 16 17 NaN
2015-01-10 18 19 NaN
2015-01-11 20 21 0.0
2015-01-12 22 23 2.0
2015-01-13 24 25 4.0
2015-01-14 26 27 6.0
2015-01-15 28 29 8.0
2015-01-16 30 31 10.0
2015-01-17 32 33 12.0
2015-01-18 34 35 14.0
2015-01-19 36 37 16.0
2015-01-20 38 39 18.0
Когда я использую freq = '1Y', результат покажет эту ошибку
ValueError: cannot reindex from a duplicate axis
То, что я хочу, это таким образом, сдвиг на один год.
A B C
2015-01-01 0 1 NaN
2015-01-02 2 3 NaN
2015-01-03 4 5 NaN
2015-01-04 6 7 NaN
2015-01-05 8 9 NaN
2015-01-06 10 11 NaN
2015-01-07 12 13 NaN
2015-01-08 14 15 NaN
2015-01-09 16 17 NaN
2015-01-10 18 19 NaN
...
2016-01-01 730 731 0
2016-01-02 732 733 2
2016-01-03 733 734 4
2016-01-04 734 735 6
2016-01-05 735 736 8
2016-01-06 736 737 10
2016-01-07 737 738 12
2016-01-08 738 739 14
2016-01-09 739 740 16
2016-01-10 740 741 18
И я нашел следующую информацию
A, Y частота конца года BA, BY частота конца финансового года AS, YS частота начала года BAS, BYS частота начала финансового года
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries -offset-aliases
Я имею в виду смещение 365D, но есть проблема с високосным годом.
Итак как я могу сдвинуть данные ровно за один год?