Интерполяция из нескольких фреймов данных - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть 2 кадра данных временных рядов, где xp - это координаты x данных fp. Я хочу интерполировать значения из комбинаций xp / fp на дату для фиксированного набора значений x. Таким образом, в результате получается кадр данных временных рядов с тем же индексом даты и времени, что и для 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)

Буду признателен за любые указатели.

UPDATE нашел способ делать то, что я хотел, как показано ниже

   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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...