【问题标题】:Dask Dataframe sum of column always returning scalar [duplicate]列的Dask Dataframe总和总是返回标量[重复]
【发布时间】:2018-10-05 18:46:28
【问题描述】:

我创建了一个 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> 返回。尽管研究了这可能意味着什么,但我仍然对为什么没有返回数值存在分歧。我怎样才能把它翻译成它的数值?

【问题讨论】:

  • df[11].sum().compute() 也不工作?
  • 效果很好!我在 .sum() 的文档中找不到 .compute(),我一定在这里遗漏了一些东西。或者特别是在 dask 文档中的任何地方。所以我不确定为什么这会奏效。你介意给我指出正确的方向吗?

标签: python pandas dataframe dask


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2019-08-05
    • 2013-12-23
    • 2012-11-02
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多