繁体   English   中英

将一个数据帧拆分为多个数据帧,并在该数据帧上并行执行过程

[英]Split a dataframe into multiple dataframes and perform procedures on the dataframes in parallel

我有一个数据帧dfA。 包含超过一百万条记录。 我想基于“ GROUP_ID”将数据框拆分为多个数据框,然后对数据框执行一些操作。 此循环将基于唯一的组ID创建一个数据框。 问题是此代码需要3天的时间才能运行,因此我试图弄清楚如何使用多处理并行执行此操作。 请指教

for group in dfA['GROUP_ID']:
    dftest = dfA.loc[dfA['GROUP_ID'] == group]

Dask直接支持熊猫,并允许在一台计算机或分布式计算机上进行并行计算。

Dask由两个部分组成:

  1. 动态任务调度针对计算进行了优化。 这类似于Airflow,Luigi,Celery或Make,但已针对交互式计算工作负载进行了优化。
  2. “大数据”集合(如并行数组,数据帧和列表)将诸如NumPy,Pandas或Python迭代器之类的通用接口扩展到内存或分布式环境。 这些并行集合在动态任务计划程序之上运行。

从文档中看一个简单的熊猫示例:

import pandas as pd                     
df = pd.read_csv('2015-01-01.csv')      
df.groupby(df.user_id).value.mean()     

和黄昏一样:

import dask.dataframe as dd
df = dd.read_csv('2015-*-*.csv')
df.groupby(df.user_id).value.mean().compute()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM