首页 > 解决方案 > 是否可以将 Pandas groupby 对象拆分为更小的 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 对象。

标签: pythonpandaspandas-groupby

解决方案


推荐阅读