我有df['date'] = pd.to_datetime(df['Transaction_Date'], format = '%d/%m/%Y')
似乎工作正常。但是,我真的很恼火,当我比较日期时,我似乎仍然需要使用月/日/年格式。如在
df[(df['date'] > "04/10/2018") & (df['date'] < "05/10/2018")]
在比较日期时,有没有办法说服大熊猫允许日/月/年格式?
答案 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"))]
我的功能只是一个例子,你可以定义你认为适合的任何功能。有无限的可能性