如何在dask中直接创建分类系列?

时间:2017-09-15 19:27:35

标签: python dask

我想根据另一个系列的过滤器创建一个分类dask Series。有了熊猫,我会做以下事情:

import numpy as np
import pandas as pd
x = pd.Series(np.random.random(10))
test = x < 0.5
label = pd.Series(pd.Categorical.from_codes(test, categories=['a', 'b']))

如果x是一个dask Series,有没有办法创建一个等效的label dask系列而不必先显式创建pandas系列(例如,避免{{1}和.compute())?

1 个答案:

答案 0 :(得分:0)

是的,您可以获得所需的一切,如下所示

import dask.array as da
import dask.dataframe as dd

r = da.random.random(1000000, chunks=(10000,))  # dask array
s = dd.from_array(r)  # dask series
label = s.map_partitions(
    lambda d: pd.Series(pd.Categorical.from_codes(
    d < 0.5, categories=['a', 'b'])), meta='category')

(当然,如果您真的不想要随机数字,请用真实数据替换s