熊猫按指数插值数据框

时间:2018-10-26 12:11:06

标签: python pandas interpolation exponential

我有一个如下数据框:

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

有什么办法可以实现?

0 个答案:

没有答案