是否可以将Pandas groupby对象拆分为较小的groupby对象?

时间:2018-08-15 01:23:18

标签: python pandas pandas-groupby

Pandas中groupby对象的一大功能是能够使用apply在组上运行任意功能。我正在尝试使用multiprocessing对此进行并行化。

所以从一个groupby对象开始,我想:

  1. 将其拆分为多个groupby对象
  2. 将它们喂给multiprocessing.Pool工人
  3. 对它们运行groupby.apply
  4. 连接结果

这是代码中理想的工作流程:

# create the initial groupby
gb = df.groupby('variable')

# split into multiple groupby's
many_groupbys = gb.split(n_chunks=10)

# now many_groupbys is a list of 10 groupby objects

# this is our transformer
def func(groupby):
    return groupby.apply(transformation)

# submit to pool
with Pool(10) as pool:
    results = pool.map(func, many_groupbys)

result = pd.concat(results)

那么,有没有一种方法可以将单个groupby对象拆分为多个groupby对象?是否有更好的工作流可以并行处理数据帧上的计算,而又不能随意在行上拆分,而又关心在行组上进行处理?

请注意,我不想单独处理组,我希望使用groupby对象。

0 个答案:

没有答案