Pandas 如何将LabelEncoder应用于Dask数据帧以对分类值进行编码
我有一个Dask数据帧,它由分类数据和数字(浮点和整数)数据组成。当我尝试使用下面的代码对分类列进行LabelEncode编码时,我得到了一个错误Pandas 如何将LabelEncoder应用于Dask数据帧以对分类值进行编码,pandas,data-science,dask,dask-distributed,dask-ml,Pandas,Data Science,Dask,Dask Distributed,Dask Ml,我有一个Dask数据帧,它由分类数据和数字(浮点和整数)数据组成。当我尝试使用下面的代码对分类列进行LabelEncode编码时,我得到了一个错误 from dask_ml.preprocessing import LabelEncoder, Categorizer encoder = LabelEncoder() encoded = encoder.fit_transform(train_X.values) 错误如下: ValueError: bad input shape (3686
from dask_ml.preprocessing import LabelEncoder, Categorizer
encoder = LabelEncoder()
encoded = encoder.fit_transform(train_X.values)
错误如下:
ValueError: bad input shape (36862367, 15)
此外,我尝试了一种不同的方法:
from sklearn.externals.joblib import parallel_backend
with parallel_backend('dask'):
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(
Categorizer(), LabelEncoder())
pipe.fit(train_X)
pipe.transform(train_X)
这给了我一个新的错误:
TypeError: fit() takes 2 positional arguments but 3 were given
有谁能告诉我在Dask数据帧中对分类数据应用编码的正确方法吗。提前感谢。在scikit学习/dask ml中,LabelEncoder转换一维输入。因此,您可以将其用于pandas/dask系列,而不是数据帧
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> data = dd.from_pandas(pd.Series(['a', 'a', 'b'], dtype='category'),
... npartitions=2)
>>> le.fit_transform(data)
dask.array<values, shape=(nan,), dtype=int8, chunksize=(nan,)>
>>> le.fit_transform(data).compute()
array([0, 0, 1], dtype=int8)
>>将dask.dataframe作为dd导入
>>>作为pd进口熊猫
>>>数据=数据来源(pd.系列(['a','a','b'],数据类型='category'),
…npartitions=2)
>>>le.fit_变换(数据)
dask阵列
>>>le.fit_变换(数据).compute()
数组([0,0,1],dtype=int8)