DataFrame中的Dask数组

Pau*_*ish 8 dask

有没有办法轻松将数值的DataFrame转换为数组?与valuespandas DataFrame 类似.我似乎无法用提供的API找到任何方法,但我认为这是一个常见的操作.

MRo*_*lin 8

编辑:是的,现在这是微不足道的

您可以使用该.values物业

x = df.values
Run Code Online (Sandbox Code Playgroud)

老的,现在不正确的答案

目前没有简单的方法可以做到这一点.这是因为dask.array需要知道其所有块的长度,而dask.dataframe不知道这个长度.这不是一个完全懒惰的操作.

话虽这么说,你可以使用dask.delayed完成它,如下所示:

import dask.array as da
from dask import compute

def to_dask_array(df):
    partitions = df.to_delayed()
    shapes = [part.values.shape for part in partitions]
    dtype = partitions[0].dtype

    results = compute(dtype, *shapes)  # trigger computation to find shape
    dtype, shapes = results[0], results[1:]

    chunks = [da.from_delayed(part.values, shape, dtype) 
              for part, shape in zip(partitions, shapes)]
    return da.concatenate(chunks, axis=0)
Run Code Online (Sandbox Code Playgroud)