首页 > 解决方案 > 列的 Dask Dataframe 总和始终返回标量

问题描述

我创建了一个 Dask Dataframe(称为“df”),索引为“11”的列具有整数值:

In [62]: df[11]
Out[62]:
Dask Series Structure:
npartitions=42
    int64
      ...
    ...
      ...
      ...
Name: 11, dtype: int64
Dask Name: getitem, 168 tasks

我试图将这些总结为:

df[11].sum() 

我得到dd.Scalar<series-..., dtype=int64>回报。尽管研究了这可能意味着什么,但我仍然对为什么没有返回数值存在分歧。我怎样才能把它翻译成它的数值?

标签: pythonpandasdataframedask

解决方案


我认为您需要compute告诉Dask处理之前的所有内容:

计算(**kwargs)
计算这个 dask 集合

这会将惰性 Dask 集合转换为内存中的等价物。例如,一个 Dask.array 变成一个 numpy.array() 并且一个 Dask.dataframe 变成一个 Pandas 数据帧。在调用此操作之前,整个数据集必须适合内存。

df[11].sum().compute()

推荐阅读