我想根据另一个系列的过滤器创建一个分类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()
)?
答案 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
)