[英]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由两个部分组成:
- 动态任务调度针对计算进行了优化。 这类似于Airflow,Luigi,Celery或Make,但已针对交互式计算工作负载进行了优化。
- “大数据”集合(如并行数组,数据帧和列表)将诸如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.