【发布时间】:2019-05-08 12:37:10
【问题描述】:
非常感谢您提前提供的帮助。
我正在尝试将作为 ISO 格式字符串的日期时间转换为日期时间对象。但是尝试了很多方法都没有成功。请您帮忙。
例如,我有一个数据框,其列时间类似于如下所示。这是从数据库中提取的,这是输出的格式。
2018-12-04T04:39:26Z
2018-12-04T05:10:54.6Z
2018-12-04T05:17:32Z
2018-12-04T10:51:20.5Z
...
到目前为止我已经尝试过(多次尝试)但没有成功:
df.index = pd.to_datetime(df.index, format = "%Y-%m-%dT%H:%M:%SZ", errors='ignore')
df.index = pd.to_datetime(df.index)
df.time = df.time.map(lambda x: pd.to_datetime(dt.datetime.strptime(x, '%Y-%m-%dT%H:%M:%SZ'), format = '%d/%m/%Y %H:%M'))
再次感谢!
【问题讨论】:
-
在知道时间列表中有两种 iso 格式之前,我尝试了这些尝试。我该如何处理?
-
您使用的是哪个 pandas 版本以及遇到哪些错误?
df.index = pd.to_datetime(df.index)使用您发布的示例为我工作 -
您可以发布它产生的错误(使用您调用的确切代码)吗?两种不同格式到底有什么问题?当我将此示例数据粘贴到 IPython 中并调用
pandas.to_datetime时,它适用于所有整体,没有错误,结果正确。你得到什么不正确的结果? -
你可能需要
pd.to_datetime(df.index, errors='coerce')。这应该处理这两种格式,并且仍然将完全不正确的日期强制为NaT。在第一种情况下,有两种格式不匹配,引发错误,errors='ignore'这将返回输入。 -
如果没有更多代码支持该问题,我发现很难提供帮助,请向我们展示真正的
Dataframe的head。
标签: python pandas datetime dataframe