【发布时间】:2018-07-10 22:36:54
【问题描述】:
我需要将我的数据集拆分成块,我目前使用以下简单代码:
cases = []
for i in set(df['key']):
cases.append(df[df['key']==i].copy())
但是我的数据集很大,最终需要几个小时,所以我想知道是否有一种方法可以使用多线程来加速它?或者是否有任何其他方法可以加快速度?
【问题讨论】:
-
我真的不认为你想走这条路。我认为您需要扩展问题以在更广泛的意义上合并您想要执行的任务(暂时将多处理放在一边)
-
什么是巨大?行?列?
-
大约 8000 万行乘 30 列,以及我试图分割的大约 30,000 个唯一键
-
@AntoineBarthelet 多处理是绕过 GIL 的一种方法——pandas,或者主要是 numpy,可以自然地做到这一点。听起来你有一个很好的熊猫问题。我重申,我认为应该放弃多处理方法,你应该让人们仔细检查你试图加速的代码(MCVE)
标签: python pandas python-multiprocessing python-multithreading