Python pandas читает только дни при сравнении дат из csv - PullRequest
0 голосов
/ 16 октября 2018

Допустим, это мой код:

df = pd.read_table('file_name', sep=';')
pd.Timestamp("today").strftime(%d.%m.%y)
df = df[(df['column1'] < today)]
df

Вот таблица из файла CSV:

Column 1
27.02.2018
05.11.2018
22.05.2018
01.11.2018
01.08.2018
01.08.2018
16.10.2018
22.08.2018
21.11.2018

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

Column 1    
05.11.2018  
01.11.2018  
01.08.2018
01.08.2018

Это означает, что Python смотрит только на дни и игнорирует месяцы, и этонеправильно.Мне нужно, чтобы понять, что это дата, а не просто цифры.Что мне сделать, чтобы достичь этого?

PS Я новичок в Python

1 Ответ

0 голосов
/ 16 октября 2018

Вы должны преобразовать свой столбец в тип date , а не в строки, поскольку строки сравниваются лексикографически.

Таким образом, вы можете преобразовать его с помощью:

# convert the strings to date(time) objects
df['column1'] = pd.to_datetime(df['column1'], format='%d.%m.%Y')

Затем вы можете сравнить его с date объектом, например:

>>> from datetime import date
>>> df[df['column1'] < date.today()]
     column1
0 2018-02-27
1 2018-05-11
2 2018-05-22
3 2018-01-11
4 2018-01-08
5 2018-01-08
7 2018-08-22 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...