分区 dask 数据帧的元素平均值

问题描述 投票:0回答:1

我有一个由多个 2d DataFrame 组成的 dask dataframe(每个分区都是一个 2d DataFrame)。我想要最有效的方法来找到生成单个 2d DataFrame 的所有分区的平均值。例如,如果:

partition 1    partition 2    partition 3

    A  B           A  B           A   B
0 | 1  4       0 | 7  10      0 | 13  16
1 | 2  5       1 | 8  11      1 | 14  17
2 | 3  6       2 | 9  12      2 | 15  18

Then I want the mean to be found across elements, for example: 
- Row 0 Column A :  mean(1 + 7 + 13)  = 7
- Row 1 Column A :  mean(3 + 8 + 14)  = 8
- Row 0 Column B :  mean(4 + 10 + 16) = 10
- etc ... 

The final result would be a single data frame as shown: 

     A     B
0 | 7.0  10.0
1 | 8.0  11.0
2 | 9.0  12.0

我尝试使用 dask.sum() 除以分区数。但这只允许按列和行求和。 map_partition 函数不起作用,因为操作不是独立的。

average dask partitioning dask-distributed dask-dataframe
1个回答
0
投票

查找 dask_dataframe 所有分区的元素平均值

X
并达到上述问题中想要的结果可以使用以下方法。我们按元素对所有分区求和,然后将所得数据帧除以分区数:

num_partitions = X.partitions
X.groupby(X.index).sum()/num_partitions
© www.soinside.com 2019 - 2024. All rights reserved.