Предположим, у вас есть два кадра данных Pandas, один из которых содержит данные за 2020 год, а другой - данные за 2030 год. Оба кадра данных имеют одинаковую форму, имена столбцов и содержат только числовые значения.Для простоты мы создадим их следующим образом:
twenty = pd.DataFrame({'A':[1,1,1], 'B':[3,3,3]})
thirty = pd.DataFrame({'A':[3,3,3], 'B':[7,7,7]})
Теперь цель состоит в том, чтобы выполнить линейную интерполяцию для всех значений в этих фреймах данных, чтобы получить новый фрейм данных для 2025 года (или любого другого года, когда мыВыбрать).Итак, мы хотели бы интерполировать между каждым парным набором значений, таких как twenty['A'][0]
и thirty['A'][0]
.Если мы сделали это для целевого 2025 года, результат должен быть:
twentyfive = pd.DataFrame({'A':[2,2,2],'B':[5,5,5]})
Я пытался использовать np.interp
;однако, насколько я могу судить, это действительно предназначено для интерполяции в данном (единственном) массивеИ я решил проблему, используя более грубый метод плавления DataFrames, добавления столбцов года, объединения их вместе, а затем создания нового столбца с интерполированными значениями.Это немного грязно и многословно.
Я чувствую, что должен быть более прямой (и оптимизированный) способ выполнения этой задачи.Любая помощь приветствуется.