Вставьте отсутствующие рабочие дни в кадре данных pandas и заполните их NaN

Я пытаюсь вставить отсутствующие рабочие дни в фреймворке временных рядов, таких как

import pandas as pd from pandas.tseries.offsets import * df = pd.DataFrame([['2016-09-30', 10, 2020], ['2016-10-03', 20, 2424], ['2016-10-05', 5, 232]], columns=['date', 'price', 'vol']).set_index('date') df['date'] = pd.to_datetime(df['date']) df = df.set_index('date') 

данные выглядят следующим образом:

 Out[300]: price vol date 2016-09-30 10 2020 2016-10-03 20 2424 2016-10-05 5 232 

Я могу легко создать серию недельных дней с помощью pd.date_range()

 pd.date_range('2016-09-30', '2016-10-05', freq=BDay()) Out[301]: DatetimeIndex(['2016-09-30', '2016-10-03', '2016-10-04', '2016-10-05'], dtype='datetime64[ns]', freq='B') 

основанный на том, что DateTimeIndex я хотел бы добавить отсутствующие даты в моем df и заполнить значения столбца с помощью NaN, поэтому я получаю:

 Out[300]: price vol date 2016-09-30 10 2020 2016-10-03 20 2424 2016-10-04 NaN NaN 2016-10-05 5 232 

Есть простой способ сделать это? Благодаря!

2 Solutions collect form web for “Вставьте отсутствующие рабочие дни в кадре данных pandas и заполните их NaN”

Вы можете использовать reindex:

 df.index = pd.to_datetime(df.index) df.reindex(pd.date_range('2016-09-30', '2016-10-05', freq=BDay())) Out: price vol 2016-09-30 10.0 2020.0 2016-10-03 20.0 2424.0 2016-10-04 NaN NaN 2016-10-05 5.0 232.0 

В качестве альтернативы вы можете использовать pandas.DataFrame.resample () , указав «B» для бизнес-дня, без необходимости указывать последовательность начала или конца даты, так же как и датафрейм поддерживает индекс datetime

 df = df.resample('B').sum() # price vol # date # 2016-09-30 10.0 2020.0 # 2016-10-03 20.0 2424.0 # 2016-10-04 NaN NaN # 2016-10-05 5.0 232.0 
  • Как сохранить «полную веб-страницу» не только базовый html с помощью Python
  • Перемещайте объект каждые несколько секунд в Pygame
  • Как аутентифицироваться с помощью API Google Spreadsheets с помощью службы клиента / обнаружения Python?
  • Скрипт с использованием многопроцессорного модуля не завершается
  • Python: как получить доступ к файлу из другого каталога
  • Начало Scrapy Сканирование после входа в систему
  • = + Оператор Python синтаксически корректен
  • применять иерархию или мультииндекс к столбцам панды
  • Python - лучший язык программирования в мире.