所以我们说这是我的代码:
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的新手
答案 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