比较csv中的日期时,Python pandas仅读取天

时间:2018-10-16 14:29:53

标签: python pandas

所以我们说这是我的代码:

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 :(得分:1)

您应该将列转换为 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