您好我有一个大型数据框,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万行。有什么想法吗?
答案 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)