Динамический диапазон дат - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать еженедельный отчет на ноутбуке Jupyter для набора данных, который извлекается из базы данных SQL. Мне нужно нарезать данные на основе диапазона дат из набора данных.

Данные извлекаются за последние 60 дней с текущей даты, но мне нужно извлекать данные (основанные на полноте данных / другие) в течение 30 дней между ними. Для этого я использовал следующий код

from datetime import datetime, timedelta

today = datetime.now().date()
start = today - timedelta(days=10)
end =  start- timedelta(days=30)
Df5= Df5.loc[start : end]

Последняя часть кода выдает следующую ошибку:

TypeError: '<' не поддерживается между экземплярами 'int' и 'Datetime.date' </p>

Это самый эффективный способ нарезки данных? Я новичок в Python, и это первый раз, когда я работаю с данными реального мира, поэтому любые советы будут высоко оценены. Спасибо!

1 Ответ

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

Ваш оператор .loc будет работать только в том случае, если индекс Df5 равен DatetimeIndex. Судя по ошибке, ваш индекс относится к типу int.

Если у вас есть столбец datetime в Df5, вам нужно установить его в качестве индекса: Df5.set_index("name_of_date_column", inplace=True) и затем используйте ваше заявление .loc.

Или вы можете изменить оператор .loc, чтобы использовать столбец с датой:

Df5.loc[Df5["name_of_date_column"].between(left=start, right=end)]

В любом случае вам нужно сравнивать start и end с типами данных datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...