Панды интерполируют фрейм данных экспоненциально - PullRequest
0 голосов
/ 26 октября 2018

У меня есть такой кадр данных, как показано ниже:

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

Есть ли способ достичь этого?

...