我有一个由多个 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 函数不起作用,因为操作不是独立的。
查找 dask_dataframe 所有分区的元素平均值
X
并达到上述问题中想要的结果可以使用以下方法。我们按元素对所有分区求和,然后将所得数据帧除以分区数:
num_partitions = X.partitions
X.groupby(X.index).sum()/num_partitions