который будет принимать существующий фрейм данных с индексом DatetimeIndex и возвращать новый фрейм данных с индексом, заданным newTime. Для каждого столбца значения нового кадра данных должны оцениваться путем интерполяции значений исходного кадра данных. По сути, эта функция должна вести себя аналогично numpy.interp. Мне известен метод pandas.DataFrame.interpolate, однако он интерполирует существующие значения NAN и не принимает новый индекс в качестве аргумента.
На данный момент у меня есть 2 идеи
Добавить новый индекс и конец кадра данных со всеми значениями, равными NAN, а затем удалить повторяющиеся индексы для точных меток времени, которые уже существуют. , затем используйте метод интерполяции pandas, а затем выбирайте только строки с новым индексом.
Преобразуйте фрейм данных в массив numpy. Прокрутите столбцы, используйте интерполяцию numpy, а затем преобразуйте обратно в фрейм данных.
Оба варианта, безусловно, будут работать, но они довольно уродливы. Есть ли способ сделать это?
Я ищу функцию [code]pandas_interpolate(df: pd.DataFrame, newTime: pd.DatetimeIndex, method: str = 'linear') -> pd.DataFrame [/code] который будет принимать существующий фрейм данных с индексом DatetimeIndex и возвращать новый фрейм данных с индексом, заданным newTime. Для каждого столбца значения нового кадра данных должны оцениваться путем интерполяции значений исходного кадра данных. По сути, эта функция должна вести себя аналогично numpy.interp. Мне известен метод pandas.DataFrame.interpolate, однако он интерполирует существующие значения NAN и не принимает новый индекс в качестве аргумента. На данный момент у меня есть 2 идеи [list] [*]Добавить новый индекс и конец кадра данных со всеми значениями, равными NAN, а затем удалить повторяющиеся индексы для точных меток времени, которые уже существуют. , затем используйте метод интерполяции pandas, а затем выбирайте только строки с новым индексом. [*]Преобразуйте фрейм данных в массив numpy. Прокрутите столбцы, используйте интерполяцию numpy, а затем преобразуйте обратно в фрейм данных. [/list] Оба варианта, безусловно, будут работать, но они довольно уродливы. Есть ли способ сделать это?