这是因为当pandas
dateutil.parser.parse具有非默认格式或未
format提供任何字符串时,pandas会后退以解析字符串(这更加灵活,但速度也较慢)。
如上所示,您可以通过向提供
format字符串来提高性能
to_datetime。或者另一个选择是使用
infer_datetime_format=True
显然,
infer_datetime_format当存在微秒时,无法推断。在没有这些示例的情况下,您可以看到大幅提高了速度:
In [28]: d = '2014-12-24 01:02:03'In [29]: c = re.sub('-', '/', d)In [30]: s_c = pd.Series([c]*10000)In [31]: %timeit pd.to_datetime(s_c)1 loops, best of 3: 1.14 s per loopIn [32]: %timeit pd.to_datetime(s_c, infer_datetime_format=True)10 loops, best of 3: 105 ms per loopIn [33]: %timeit pd.to_datetime(s_c, format="%Y/%m/%d %H:%M:%S")10 loops, best of 3: 99.5 ms per loop


