Автоматическая интерполяция пропущенных значений в панде - PullRequest
0 голосов
/ 04 января 2019

У меня есть датафрейм с данными о бронировании авиабилетов за прошедший год для конкретного пункта отправления и назначения. В системе сотни подобных наборов данных.

В каждом наборе данных есть дыры в данных. В текущем примере у нас есть около 85 дней в году, для которых у нас нет данных бронирования.

Здесь есть две колонки - departure_date and bookings.

Следующим шагом для меня будет to include the missing dates in the date column, and set the corresponding values in bookings column to NaN.

Я ищу лучший способ сделать это.

Пожалуйста, найдите часть кадра данных ниже:

Index       departure_date              bookings
0           2017-11-02 00:00:00             43
1           2017-11-03 00:00:00             27
2           2017-11-05 00:00:00             27 ********
3           2017-11-06 00:00:00             22
4           2017-11-07 00:00:00             39
.
.
164         2018-05-22 00:00:00             17
165         2018-05-23 00:00:00             41
166         2018-05-24 00:00:00             73
167         2018-07-02 00:00:00             4  *********
168         2018-07-03 00:00:00             31
.
.
277         2018-10-31 00:00:00             50
278         2018-11-01 00:00:00             60

Мы видим, что набор данных рассчитан на один год (с 2 ноября 2017 года по 1 ноября 2018 года). Но у нас есть данные только за 279 дней. Например, у нас нет данных между 2018-05-25 и 2018-07-01. Я должен был бы включить эти даты в столбец вылет_даты и установить для соответствующих значений бронирования значение NaN.

Для второго шага я планирую выполнить некоторую интерполяцию, используя что-то вроде

dataFrame['bookings'].interpolate(method='time', inplace=True)

Пожалуйста, предложите, если есть лучшие альтернативы в Python.

1 Ответ

0 голосов
/ 04 января 2019

Это повторная выборка за каждый день.Затем заполните пробелы.

dataFrame['bookings'].resample('D').pad()

У вас может быть больше идей о пересэмплере на этой странице (чтобы вы могли выбрать тот, который наилучшим образом соответствует вашим потребностям): https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html

...