将函数转换为customaggregation函数

2024-04-24 08:02:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含3列的大型数据集:

   sku   center units
0   103896  1   2.0
1   103896  1   0.0
2   103896  1   5.0
3   103896  1   0.0
4   103896  1   7.0
5   103896  1   0

我需要使用dask使用groupby-apply函数

def function_a(x):
    return x.eq(0).sum()


result1 = df.groupby([sku, center])['units'].apply(function_a).compute()

我正在尝试使用Dask Custon Aggreagtion function转换这些函数,以避免数据在幕后混乱:

enter image description here

但是,我不确定如何以与自定义平均值聚合示例类似的方式使用chunk, agg, finalize参数:

custom_mean = dd.Aggregation(
     name='custom_mean',
     chunk=lambda s: (s.count(), s.sum()),
     agg=lambda count, sum: (count.sum(), sum.sum()),
     finalize=lambda count, sum: sum / count,

如何重写每个步骤

x.eq(0).sum()

用这种格式


Tags: 数据lambda函数countfunctionaggeqcenter