У меня есть два списка, как list = [[date, value], [date, value] ... [date, value]]
Python интерполировать два список с указанием даты стоимостью
И я пытаюсь получить интерполированные списки из этих двух списков.
В первый, у меня полиномиальные coeficients:
import numpy as np
coefficients = np.polyfit(
np.array(values_from_x_list),np.array(values_from_y_list), polynomial_degree
)
Затем каждое значение из списка X Я пытаюсь интерполировать, как:
from numpy.polynomial.polynomial import polyval
for value in values:
polyval(value, coefficients[::-1])
И я получил такое же значение, как из списка Y ,
Вот мой выход, например:
x_list = [
['2016-12-05', 2.0541010116247905e-06], ['2016-12-17', 1.786168458607079e-06], ['2017-01-10', 2.397426644056526e-06]
]
y_list = [
['2016-12-07', 0.323], ['2016-12-19', 0.527], ['2017-01-07', 0.693]
]
interpolated_list = [
['2016-12-05', 0.323], ['2016-12-17', 0.527], ['2017-01-10', 0.693]
]
Так, а вот пример того, что я хочу (что-то вроде этого значения):
interpolated_list = [
['2016-12-05', 0.2xx], ['2016-12-07', 0.323], ['2016-12-17', 0.4xx],
['2016-12-07', 0.323], ['2017-01-07', 0.693], ['2017-01-10', 0.7xx]
]
UPD
I не требуется интерполировать даты, а только значения. Другими словами, я хочу только изменить значения в x_list (а не даты). Даты являются константами в обоих списках.
Вы спрашиваете, как получить дату в числовом значении? Если да, проверьте '' datetime'' (https://docs.python.org/2/library/datetime.html). Вы можете читать каждую дату как новый объект datetime, а затем создавать новую временную ось для каждой даты как '' (date_i-date_0) .total_seconds() '. – alexblae
@alexblae Я не уверен, что это то, что я хочу. Мне просто нужно расширить y_list по x_list, но значения в x_list должны быть ближе к значениям из y_list – Sant
Итак, вы хотите вставить '' x_list'' в '' y_list'' и назначить для вставленных элементов значение из '' y_list'' для которого ближайшая дата? – alexblae