如何解决 pandas.to_datetime 与 python 的内置日期时间冲突?

How to resolve conflicting of pandas.to_datetime with python's built-in datetime?

最初我有

print(transactions.Date.loc[0])
>>>30/04/18

首先我完成了

transactions['Date'] = pd.to_datetime(transactions['Date'])

现在

print(transactions.Date.loc[0])
>>>2018-04-30 00:00:00

之后我像这样检查相等条件

transactions.Date.loc[0] + datetime.timedelta(days=1) == transactions.Date.loc[1]
>>>False

所以我检查

print(transactions.Date.loc[0] + datetime.timedelta(days=1))
>>>2018-05-01 00:00:00 
print(transactions.Date.loc[1])
>>>2018-01-05 00:00:00

原来两者指的是同一时间,但格式不同。如何修改我的代码以获得 True 相等性?

编辑:正如评论中所指出的,问题实际上是当我使用 [=36 时,5 月 1 日被转换为 1 月 5 日=].所以新的问题是我该如何解决这个问题?

代码运行良好,您确定 transactions.Date.loc[0]transactions.Date.loc[1] 之间的差异恰好是 1 天吗?

>>> l = pd.to_datetime(['2000/23/11', '2000/24/11'], dayfirst=True)
>>> l[0] + datetime.timedelta(days=1) == l[1]
True
>>> print(l[0], l[0] + datetime.timedelta(days=1), l[1], sep='\t')
2000-11-23 00:00:00     2000-11-24 00:00:00     2000-11-24 00:00:00

编辑:使用您的数据我发现错误:

dayfirst=True 效果很好

>>> l = pd.to_datetime(['30/4/20', '1/5/20'], dayfirst=True)
>>> l[0] - l[1]
Timedelta('-1 days +00:00:00')

没有它,2 个日期之间的转换格式不同

>>> l = pd.to_datetime(['30/4/20', '1/5/20'])
>>> l[0] - l[1]
Timedelta('116 days 00:00:00')