如何加速/并行化df中每行发生的重复df.between_time()调用?

时间:2017-09-05 20:07:17

标签: python pandas parallel-processing list-comprehension

设置:Anaconda运行Python 3.5,Pandas

我的数据框是带有索引(datetime,id#)列的多索引(p1,p2,p3 ...)。

我需要计算列间天数的10分钟平均值,因此我使用.between_time()方法和列表理解。

df['time_mean']=[df.xs(ID.value).between_time(((df.xs(ID.value)['p1_datetime'][rows])-datetime.timedelta(minutes=5)).time().strftime("%H:%M:%S"),((df.xs(ID.value)['p1_datetime'][rows])+datetime.timedelta(minutes=5)).time().strftime("%H:%M:%S"))['p1'].mean() for rows, x in enumerate(df['p1'])]

每个ID#都是可以在任意时间启动的设备,因此它们不会同步。

由于每个.between_time()调用只是读取/扫描df而不依赖,我可以进一步并行化它。

我的理解是列表理解将比map()更快或更快,但是我可以以某种方式将列表理解的每次迭代分解为不同的线程吗?

0 个答案:

没有答案