【发布时间】:2021-10-27 14:13:02
【问题描述】:
我知道这个问题很多,但我找不到适合我的情况的解决方案。我有一个 DataFrame,其中包含一个字符串格式的 Time 列,我需要将其转换为 datetime。最终,我希望将日期作为 int 用于 ML 目的,但我似乎无法先将其设为 datetime。
我有:
testDate = tripOrig[' Time'][0]
newDate = dt.datetime.strptime(testDate,'%d-%b-%Y %H:%M:%S.%f %Z')
日期是这样的字符串:
05-Jun-2016 00:00:00.000 EDT
无论出于何种原因,我不断收到格式错误的错误消息。我一生都无法弄清楚我做错了什么。我多次检查日期时间文档,但我不断收到:
ValueError: time data '05-Jun-2016 00:00:00.000 EDT' does not match format '%d-%b-%Y %H:%M:%S.%f %Z'
我在这里错过了什么?!?
另外,我也尝试过:
tripOrig['correct date'] = pd.to_datetime(tripOrig[' Time'])
这很慢,会抛出时区警告,并且转换为 int 时不考虑秒数,所以我无法使用它。
如何转换?
【问题讨论】:
-
问题在于
EDT无法识别,将其与UTC交换,代码 sn-p 工作正常。您需要查看日期时间识别的 EDT 的等效时区。 -
根据本页:rdrr.io/r/base/strptime.html。
%Z仅用于输出。 -
这能回答你的问题吗? Python strptime() and timezones?