小编liu*_*uan的帖子

为什么pandas.to_datetime对于非标准时间格式(例如'2014/12/31')来说很慢

我有这样格式的.csv文件

timestmp, p
2014/12/31 00:31:01:9200, 0.7
2014/12/31 00:31:12:1700, 1.9
...
Run Code Online (Sandbox Code Playgroud)

当读取pd.read_csv并使用时间str转换为datetime时pd.to_datetime,性能会急剧下降.这是一个最小的例子.

import re
import pandas as pd

d = '2014-12-12 01:02:03.0030'
c = re.sub('-', '/', d)

%timeit pd.to_datetime(d)
%timeit pd.to_datetime(c)
%timeit pd.to_datetime(c, format="%Y/%m/%d %H:%M:%S.%f")
Run Code Online (Sandbox Code Playgroud)

而且表现是:

10000 loops, best of 3: 62.4 µs per loop
10000 loops, best of 3: 181 µs per loop
10000 loops, best of 3: 82.9 µs per loop
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能提高pd.to_datetime从csv文件中读取日期的性能?

python csv python-datetime string-to-datetime pandas

40
推荐指数
2
解决办法
1万
查看次数