从多个数据帧插值

时间:2018-09-04 19:24:54

标签: python python-3.x pandas numpy

我有2个时间序列数据帧,其中xp表示数据fp的x坐标。 我想为每个固定值的x值对每个日期的xp / fp组合值进行插值。因此,结果输出是一个时间序列数据帧,其日期时间索引与xp和fp相同,并且列数= x中没有元素

我尝试使用numpy.interp(),但最终出现ValueError:对象太深,无法放入所需的数组

import pandas as pd
import numpy as np

fp = pd.DataFrame(
    data=np.random.randint(0,100,size=(10, 4)),
    index=pd.date_range("20180101", periods=10),
    columns=list('ABCD'),
)

xp = pd.DataFrame(
    data=np.column_stack([
        list(range(1,11)),
        list(range(70,80)),
        list(range(150,160)),
        list(range(220,230))
    ]),
    index=pd.date_range("20180101", periods=10),
    columns=list('ABCD'),
)

x = [60, 120, 180]
x_interp = np.interp(x,xp,fp)

似乎np.interp无法将数据帧作为输入?但是听起来这是我对大型数据集(> 3000 xp和fp行)进行处理的最快方法

不胜感激任何指针。

更新 找到了一种做我想做的事情的方法

   x_interp = pd.DataFrame.from_records(fp.index.to_series().apply(lambda z: np.interp(x, xp.loc[(z)], fp.loc[(z)])).values, index = fp.index)

0 个答案:

没有答案