У меня есть такой кадр данных, как показано ниже:
31/12/2015 31/12/2025 31/12/2030 31/12/2040
19.98 25.9475 26.808 26.4917
7.804 8.33913 9.15204 11.8737
3.704 3.69264 3.49261 2.76112
8.4077 8.10772 8.83797 10.3268
Я бы хотел расширить годовые данные на квартальные, используя интерполяцию.Однако я не хотел бы использовать линейную интерполяцию, но экспоненциальную.
Что я сделал до сих пор:
rng = pd.date_range(df.columns,freq = 'Q')
df1 = df.reindex(rng,axis=1).interpolate(method = 'time',axis =1)
df1
После этого я получу расширенную таблицу со всеми четвертями.
31/12/2015 0:00 31/03/2016 0:00 30/06/2016 0:00 30/09/2016 0:00 31/12/2016 0:00 31/03/2017 0:00 30/06/2017 0:00 30/09/2017 0:00 31/12/2017 0:00 31/03/2018 0:00 ... 30/09/2038 0:00 31/12/2038 0:00 31/03/2039 0:00 30/06/2039 0:00 30/09/2039 0:00 31/12/2039 0:00 31/03/2040 0:00 30/06/2040 0:00 30/09/2040 0:00 31/12/2040 0:00
0 19.98 20.128657 20.277313 20.427603 20.577894 20.724917 20.873573 21.023863 21.174153 21.321176 ... 26.562961 26.554995 26.547202 26.539323 26.531357 26.523391 26.515511 26.507632 26.499666 26.4917
1 7.804 7.817331 7.830661 7.844138 7.857616 7.8708 7.88413 7.897607 7.911085 7.924269 ... 11.260526 11.32907 11.396124 11.463924 11.532468 11.601012 11.668812 11.736611 11.805156 11.8737
2 3.704 3.703717 3.703434 3.703148 3.702862 3.702582 3.702299 3.702013 3.701727 3.701447 ... 2.925921
Но интерполяция линейная, а не экспоненциальная.Под экспонентой я подразумеваю:
v2 = (v3 / v1) ^ ((t3-t1) / (t2-t1)) * v1
Есть ли способ достичь этого?