存储在单独数据框中的值之间的线性插值

时间:2018-10-23 15:57:08

标签: python pandas loops dataframe interpolation

我将数字存储在2个数据框中(实际的要大得多),

df1

                  A        B          C      T        Z
13/03/2017      1.321674  3.1790  3.774602  30.898  13.22
06/02/2017      1.306358  3.1387  3.712554  30.847  13.36
09/01/2017      1.361103  3.2280  3.738500  32.062  13.75
05/12/2016      1.339258  3.4560  3.548593  31.978  13.81
07/11/2016      1.295137  3.2323  3.188161  31.463  13.43

df2

                   A        B       C        T        Z
13/03/2017      1.320829  3.1530  3.7418  30.933  13.1450
06/02/2017      1.305483  3.1160  3.6839  30.870  13.2985
09/01/2017      1.359989  3.1969  3.7129  32.098  13.6700
05/12/2016      1.338151  3.4215  3.5231  32.035  13.7243
07/11/2016      1.293996  3.2020  3.1681  31.480  13.3587

,还有一个列表,其中存储了2017年3月3日至2016年7月11日的所有每日日期。 我想创建一个具有以下功能的数据框:

  • 每日日期列表是索引行
  • 我想创建列(在这种情况下,从A到Z),并针对每一行/天计算df1中的值和df2中对应的值之间的线性插值,该值偏移-1。例如,在A列的行'12 / 03/2017'中,我想计算[(34/35)* 1.321674] + [(1/35)* 1.305483] = 1.3212114。其中35是从13/03/2017到06/02/2017之间的天数,其中1.321674是df1中对应于A列的13/03/2017天的值,而1.305483是df2中对应于A列的值那天06/02/2017。对于2017年11月3日的A列,我想计算[(33/35)* 1.321674] + [(2/35)* 1.305483] = 1.3207488。因此,对于直到6/2/2017的时间间隔,将值1.321674和1.305483固定不变,应该显示1.305483。
  • 最后,当相应行显示的是下一个时间间隔的日期时,线性插值应移动插值。例如,一旦我到达2017年5月2日,线性插值应该在1.306358(df1,A列)和1.359989(df2,B列)之间,即向下移动一个位置。

为清楚起见,日期格式为“ dd / mm / yyyy”

我将不胜感激任何建议或建议,我知道这是一项艰巨的工作,因此任何提示都非常宝贵! 请让我知道是否需要进一步说明。

谢谢!

0 个答案:

没有答案