У меня есть фрейм данных pandas, который содержит для нескольких позиций (определяемых координатой x
) значение для разных временных меток. Я хочу создать объект pandas.Series
, который содержит значение в заданной позиции x
для всех временных меток (так что все индексы-данные для фрейма). Если x
не является одной из ярлыков столбцов, я хочу интерполировать между двумя ближайшими значениями x
.Выбор серии из базы данных pandas путем интерполяции ярлыков столбцов
Отрывок из объекта dataframe (min(x)=0
и max(x)=0.28
):
0.000000 0.007962 0.018313 0.031770 0.049263 0.072004
time (s)
15760800 0.500481 0.500481 0.500481 0.500481 0.500481 0.500481
15761400 1.396126 0.487198 0.498765 0.501326 0.500234 0.500544
15762000 1.455313 0.542441 0.489421 0.502851 0.499945 0.500597
15762600 1.492908 0.592022 0.487835 0.502233 0.500139 0.500527
15763200 1.521089 0.636743 0.490874 0.500704 0.500485 0.500423
15763800 1.542632 0.675589 0.496401 0.499065 0.500788 0.500335
я могу найти способы Нарезать dataframe по имеющимся заголовков столбцов. Но есть ли элегантный способ сделать интерполяцию?
В конце я хочу функцию, которая выглядит примерно так: result = sliceDataframe(dataframe=dfin,x=0.01)
, с результатом pandas.Series
объект, поэтому я могу вызвать его в одной строке (или, возможно, в двух) в другом сценарии постпроцессинга.
Я не хочу, чтобы настроить dataframe с фиктивной точки. Можно ли использовать опцию интерполяции без добавления столбца? Если нет, то я думаю, что пойду за первым решением. – tvandenbrande
Нет, метод интерполяции pandas всегда заполняет NaN в DataFrame. Но, возможно, это было бы возможно с использованием метода базового метода scipy-интерполяции. Но поскольку сама интерполяция является лишь одной строкой для простой линейной интерполяции после того, как вы выбрали два соседних столбца, я не знаю, что это стоит того. – joris
реализовал первый вариант, который работает отлично и достаточно быстро для последующей обработки. спасибо – tvandenbrande