В блокноте jupyter я открыл файл csv, используя pandas, в котором есть данные, относящиеся к играм, включая дату их последнего обновления - PullRequest
1 голос
/ 25 апреля 2020

В блокноте jupyter я открыл файл csv, используя pandas, в котором содержатся данные, относящиеся к играм, включая дату их последнего обновления. Я хочу удалить все строки с последней датой обновления <6 месяцев. Каков будет синтаксис для него? </p>

Имя столбца - дата выпуска текущей версии. И формат даты дд / мм / гггг.

файл csv содержит 2240 строк. и я хочу удалить строки, в которых дата находится в пределах периода времени в 6 месяцев, т.е. все даты между 25 ноября и 25 апреля должны быть удалены.

Пример данных:

Date
20/05/2017
15/01/2020
13/05/2018
01/11/2019
.
.
15/02/2019
13/03/2020

2240 строк таким образом

1 Ответ

0 голосов
/ 25 апреля 2020

Используйте boolean indexing для фильтра по столбцу Date, преобразованного в дату и время to_datetime:

df = pd.read_csv(file)

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

now = pd.Timestamp.now().floor('D')
previous =  now - pd.DateOffset(months=6)

df1 = df[(df['Date'] < previous) | (df['Date'] > now)]
print (df1)
        Date
0 2017-05-20
2 2018-05-13
4 2019-02-15

Для даты и времени в формате строки используйте:

df['Date'] = df['Date'].dt.strftime(%d/%m/%Y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...