Pandas: интерполяция, где первая и последняя точка данных в столбце – NaN

Я хотел бы использовать функцию интерполяции, но только между известными значениями данных в столбце Pandas DataFrame. Проблема в том, что первое и последнее значения в столбце часто являются NaN, и иногда это может быть много строк до того, как значение не NaN:

col 1 col 2 0 NaN NaN 1 NaN NaN ... 1000 1 NaN 1001 NaN 1 <----- 1002 3 NaN <----- only want to fill in these 'in between value' rows 1003 4 3 ... 3999 NaN NaN 4000 NaN NaN 

Я связываю набор данных, который обновляется «по событию», но отдельно для каждого столбца, и индексируется через отметку времени. Это означает, что часто есть строки, где данные не записываются для некоторых столбцов, следовательно, много NaN!

One Solution collect form web for “Pandas: интерполяция, где первая и последняя точка данных в столбце – NaN”

Я выбираю min и max значение столбца по функции idxmin и idxmax и использую функцию fillna с методом форвардного заполнения.

 print df # col 1 col 2 #0 NaN NaN #1 NaN NaN #1000 1 NaN #1001 NaN 1 #1002 3 NaN #1003 4 3 #3999 NaN NaN #4000 NaN NaN df.loc[df['col 1'].idxmin(): df['col 1'].idxmax()] = df.loc[df['col 1'].idxmin(): df['col 1'].idxmax()].fillna(method='ffill') df.loc[df['col 2'].idxmin(): df['col 2'].idxmax()] = df.loc[df['col 2'].idxmin(): df['col 2'].idxmax()].fillna(method='ffill') print df # col 1 col 2 #0 NaN NaN #1 NaN NaN #1000 1 NaN #1001 1 1 #1002 3 1 #1003 4 3 #3999 NaN NaN #4000 NaN NaN 

Добавлено другое решение, спасибо HStro .

 df['col 1'].loc[df['col 1'].first_valid_index() : df['col 1'].last_valid_index()] = df['col 1'].loc[df['col 1'].first_valid_index(): df['col 1'].last_valid_index()].astype(float).interpolate() 
  • Как скопировать / вставить DataFrame из StackOverflow в Python
  • Получить количество уникальных строк в кадре данных pandas
  • Экспорт таблицы LaTeX из pandas DataFrame
  • Pandas: если строка в столбце A содержит «x», напишите «y» для строки в столбце B
  • Переплетение двух данных
  • Параллельная read_table в пандах
  • Кажется, что окно прокатки Pandas представляет смещение для свернутых данных
  • Как я могу перебирать несколько кадров данных для выбора столбца в каждом из python?
  • Python PANDAS, измените одно значение на другое значение
  • Resample intraday pandas DataFrame без добавления новых дней
  • Получение дневных средних значений с помощью панд
  • Python - лучший язык программирования в мире.