2014-03-27 54 views
1

我在datetime中寻找由read_csv读取的转换索引,但它需要很长时间(超过1分钟)。日期时间转换对于数据帧来说太长

是否有人知道更有效的方法(其他命令,使用cython,...)?

>>> df 
<class 'pandas.core.frame.DataFrame'> 
Index: 3367200 entries, 2014/02/28 to 2017/12/31 
Columns: 3 entries, SCENARIO to 0 
dtypes: float64(1), object(2) 
>>> df.index = pd.to_datetime(df.index) 
+1

你解析与read_csv日期? –

+0

我做df = pd.read_csv(文件名,sep ='\ t',index_col = [0,1])和日期是col1 –

回答

1

您应该使用parse_dates argument for read_csv,这样,它的读取直接作为datetime64(Int64的)而不是字符串(然后不必解析):

from StringIO import StringIO # in python 2 
a = '''date,A,B 
1/1/2014,1,2 
1/1/2014,2,3''' 

In [11]: pd.read_csv(StringIO(a), index_col=[0, 1], parse_dates=[0]) 
Out[11]: 
       B 
date  A 
2014-01-01 1 2 
      2 3 
+0

非常好。谢谢 –

+0

@ user3442271出于兴趣,这是如何影响您的时间? –

+0

这样可以将时间减少一半。问题是我有24小时的初始值和第一个日期的值。所以我必须尽可能提高效率,因为之后,我必须列出专栏,并在日期时间内做一个relativedelta(实际上需要2分钟的时间)... –