pandas 处理日期时间格式的“+00:00”

2ledvvac  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(192)

如何将格式为“2020-06-30 15:20:13.078196+00:00”的日期列转换为pandas中的datetime?
这就是我所做的:
1.第一个月

  1. pd.concat([df, df.file_created.apply(lambda s: pd.Series({'date':datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.%f.%z')}))], axis=1)
  2. pd.concat([df, df.file_created.apply(lambda s: pd.Series({'date':datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.%f:%z')}))], axis=1)
    在所有情况下,我得到的错误是-time data '2020-06-30 15:20:13.078196+00:00' does not match format。任何帮助都是感激的。
wwtsj6pe

wwtsj6pe1#

+00:00是0小时的UTC偏移量,因此可以(应该)解释为UTC。最简单的方法是让pd.to_datetime自动推断格式。这对于像这样的标准格式非常有效(ISO 8601):

import pandas as pd

dti = pd.to_datetime(["2020-06-30 15:20:13.078196+00:00"])

print(dti)
# DatetimeIndex(['2020-06-30 15:20:13.078196+00:00'], dtype='datetime64[ns, UTC]', freq=None)

字符串
注记

  • pd.to_datetime也适用于混合格式,参见例如。here
  • 如果要转换的列中的日期/时间字符串只有一种格式(所有字符串的格式都相同),则设置inert_datetime_format=True可以给予更好的性能
  • pandas v2:您可以设置`format=“ISO 8601”来帮助提高性能
omtl5h9j

omtl5h9j2#

上面提到的格式都不符合您的示例。试试这个
“%Y-%m-%d %H:%M:%S.%f%z”(请注意%H前面的空格)。

相关问题