Python Pandas to_datetime指定iso 8601时间戳字符串的格式(纳秒)

Python Pandas to_datetime指定iso 8601时间戳字符串的格式(纳秒),python,pandas,iso8601,strftime,Python,Pandas,Iso8601,Strftime,我在数据帧的一列中有ISO 8601格式的时间戳字符串。我正在寻找将这列字符串转换为datatime对象的最有效方法。pd.to_datetime()可以工作,但我的数据帧大约有750万行,所以速度非常慢 我可以使用strftime语法指定格式,以避免自动检测格式,并(我假设)大大加快转换速度 import pandas as pd pd.to_datetime('2013-04-27 08:27:30.000001540', format='%Y-%m-%d %H:%M:%S.%f') 给我

我在数据帧的一列中有ISO 8601格式的时间戳字符串。我正在寻找将这列字符串转换为datatime对象的最有效方法。pd.to_datetime()可以工作,但我的数据帧大约有750万行,所以速度非常慢

我可以使用strftime语法指定格式,以避免自动检测格式,并(我假设)大大加快转换速度

import pandas as pd
pd.to_datetime('2013-04-27 08:27:30.000001540', format='%Y-%m-%d %H:%M:%S.%f')
给我:

ValueError: unconverted data remains: 540

如果我把时间戳的最后三个字符切掉,效果会非常好。这里的优雅解决方案似乎是确定与Python兼容的strftime指令的时间为纳秒。我尝试了%9N,%N,%9。有什么想法吗?

这在不指定0.15格式的情况下有效。0@Jeff谢谢我认为指定格式会更快。我必须进行基准测试,看看这是否属实。不,格式几乎总是较慢。您有一个标准的c-parsable格式。@Jeff在本例中,这是正确的,但仍然假设您没有一个标准格式,但有纳秒,我认为无法在格式字符串中指定有点烦人。使用
推断日期时间\u格式实际上是最好的。某些格式是快速可解析的(例如
%Y%m%d
和“标准”格式),其他格式需要模式匹配,根据定义速度较慢。仅供参考。您应该能够在格式字符串中指定它,您不需要这样做。(但我不确定确切的格式)