python pandas快速转换为datetime,150万行

时间:2015-08-08 11:20:02

标签: python pandas

您好我有一个大型数据框,150万行,请参阅下面的快照。我想通过合并日期和时间列来创建日期时间列(两者都是字符串),当我在解析后一起创建数据时间列时,我需要花费很多时间,因为每个行都单独执行操作。

              Date          Time  Open 
Symbol                                                                         
VOD   02/25/2013  00:00:00.000     0 
VOD   02/25/2013  00:01:00.000     0 
VOD   02/25/2013  00:02:00.000     0 
VOD   02/25/2013  00:03:00.000     0 
VOD   02/25/2013  00:04:00.000     0 
VOD   02/25/2013  00:05:00.000     0 
VOD   02/25/2013  00:06:00.000     0 

我使用以下代码创建列

aa=[datetime.strptime(str(df.DateMap[i])+' '+df.Time[i], '%m/%d/%Y %H:%M:%S.%f') for i in range(len(df))]

此功能需要很长时间才能完成,因为有150万行。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

In [5]: %timeit pd.to_datetime(df2['date'], format="%m/%d/%Y") +  pd.to_timedelta(df2['time'])
1 loops, best of 3: 9.76 s per loop

In [4]: %timeit pd.to_datetime(df2['date'] + ' ' + df2['time'],format='%m/%d/%Y %H:%M:%S.%f')
1 loops, best of 3: 8.81 s per loop

这里有两种方法,在这种情况下,一次解析所有方法(例如4)是值得的。请注意,这是master,0.16.2在timedelta解析时会慢一些。

try eventStore.saveEvent(event, span: .ThisEvent)