加快熊猫groupby.apply

时间:2020-10-22 15:56:50

标签: python pandas multithreading performance dataframe

我有一个函数 await docRef.set({ ID_Type: firebase.firestore().doc('Types/'+IDType) }); ,需要将其应用于每个熊猫数据框组:

group_fn

df.groupby(group_col_name, sort=False).apply(group_fn) 返回与输入尺寸相同的数据框。

不幸的是,所有这些都运行单线程,并且对于大型数据帧而言花费的时间太长。加快速度的最佳方法是什么?如果我能够获得group_fn来释放GIL,我可以在这里利用多线程吗?我希望这里的多处理成本会过高,尤其是在所有子流程执行完毕并返回小的数据帧之后再与group_fn结合使用。

此外,我的数据框已经按组进行了分组,所以我只需要pd.concat形式的groupby(假设集合已经进行了排序),是否有某种方法可以从熊猫中获得这种行为不用在itertools.groupby周围写我自己的包装器(我希望它会慢一些,因为它将是一个python本机循环)?

组大多小于500行,而数据框大约为1000万行,因此组很多,函数将被多次调用。

0 个答案:

没有答案