如何在熊猫中将日期与字符串进行比较?

时间:2018-06-10 20:55:44

标签: python pandas date datetime

我有df['date'] = pd.to_datetime(df['Transaction_Date'], format = '%d/%m/%Y')似乎工作正常。但是,我真的很恼火,当我比较日期时,我似乎仍然需要使用月/日/年格式。如在

df[(df['date'] > "04/10/2018") & (df['date'] < "05/10/2018")]

在比较日期时,有没有办法说服大熊猫允许日/月/年格式?

2 个答案:

答案 0 :(得分:3)

除非您事先转换为日期时间,否则不能这样做。

from functools import partial

f = partial(pd.to_datetime, dayfirst=True)
df[(df['date'] > f("04/10/2018")) & (df['date'] < f("05/10/2018"))]

可替换地,

df['date'].between(f("04/10/2018"), f("05/10/2018"))

否则,如果要比较字符串,格式必须为YYYY-MM-DD。

答案 1 :(得分:2)

似乎你想要的是一些“语法糖”......

如果您有lambda函数,例如

l = lambda x: datetime(*[int(_) for _ in x.split('/')[::-1]])

你可以使用day/month/year包裹你的日期,然后该功能会为你转换。

df[(df['date'] > l("04/10/2018")) & (df['date'] < l("05/10/2018"))]

我的功能只是一个例子,你可以定义你认为适合的任何功能。有无限的可能性