Отфильтруйте фрейм данных по дате на одну неделю раньше текущей даты - PullRequest
0 голосов
/ 13 декабря 2018

Я читаю электронную таблицу .xlsx в DataFrame Pandas, так что я могу удалить повторяющиеся строки на основе всех столбцов и экспортировать DataFrame в .csv.Один из столбцов - это столбец даты в формате ММ / ДД / ГГ.

Вот образец неизмененных данных

В этой таблице содержатся записи о ненормальных платежных часах для заработной платы, которая выплачивается каждую пятницу по часам за одну неделю дотекущая неделя.Строки добавляются каждый день, когда в данных этого дня есть ненормальная функция.Я хочу попросить панд найти только дубликаты в строках, дата которых меньше или равна дате пятницы за неделю, предшествующую текущей пятнице (этот скрипт будет запускаться только по пятницам).Например, если сегодня пятница, 12/7/18, я хочу установить дату отсечения предыдущей пятницы, 30.11.18, и смотреть только на строки, даты которых находятся на или до 30.11.18.Как я могу обрезать DataFrame таким образом перед выполнением drop_duplicates?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Обратите внимание, что использование фиксированного временного окна в 1 неделю (или 7 дней) - это нормально, если вы уверены , что ваш сценарий будет только когда-либо запускаться в пятницу.

Конечно, вы можете программно получить дату прошлой пятницы и отфильтровать ваш фрейм данных на эту дату:

last_friday = datetime.now().date() - timedelta(days=datetime.now().weekday()) + timedelta(days=4, weeks=-1)
print(df[df['date'] <= pd.Timestamp(last_friday)])
0 голосов
/ 13 декабря 2018

вы можете использовать дату и время.

получить сегодняшнюю дату.хранить дату одну неделю от сегодняшней даты.фильтровать ваши данные (я не уверен, как вы их сохранили, но я использовал генерацию имен)

from datetime import date, timedelta   


today = date.today()
week_prior =  today - timedelta(weeks=1)

df_last_week = df[df['date'] <= week_prior]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...