dask_ml.preprocessing.Categorizer

dask_ml.preprocessing.Categorizer

dask_ml.preprocessing.Categorizer(categories: Optional[dict] = None, columns: pandas.core.indexes.base.Index = None)

将 DataFrame 的列转换为分类(categorical)数据类型。

这是用于虚拟编码(dummy encoding)、独热编码(one-hot encoding)或分类编码(categorical encoding)的有用预处理步骤。

参数
categories映射,可选

一个字典,将列名映射到 pandas.api.types.CategoricalDtype 的实例。或者,将列名映射到 (categories, ordered) 元组。

columns序列,可选

列名序列,用于限制分类范围。当指定了 categories 时,此参数将被忽略。

属性
columns_pandas.Index

已进行分类的列。当 categories 为 None 且我们检测到分类和对象类型的列时很有用。

categories_dict

一个字典,将列名映射到数据类型。对于 pandas>=0.21.0,其值是 pandas.api.types.CategoricalDtype 的实例。对于更早的 pandas 版本,其值是 (categories, ordered) 元组。

注意

此转换器仅适用于 dask.DataFramepandas.DataFrame。默认情况下,所有对象类型的列都会转换为分类类型。类别的集合将是列中存在的值,且分类将是无序的。传递 dtypes 以控制此行为。

所有其他列都包含在转换后的输出中,不做修改。

对于 dask.DataFrame,任何未知分类将变为已知。

示例

>>> df = pd.DataFrame({"A": [1, 2, 3], "B": ['a', 'a', 'b']})
>>> ce = Categorizer()
>>> ce.fit_transform(df).dtypes
A       int64
B    category
dtype: object
>>> ce.categories_
{'B': CategoricalDtype(categories=['a', 'b'], ordered=False)}

使用 CategoricalDtypes 指定类别

>>> from pandas.api.types import CategoricalDtype
>>> ce = Categorizer(categories={"B": CategoricalDtype(['a', 'b', 'c'])})
>>> ce.fit_transform(df).B.dtype
CategoricalDtype(categories=['a', 'b', 'c'], ordered=False)

方法

fit(X[, y])

找到分类列。

fit_transform(X[, y])

拟合数据,然后进行转换。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估算器的参数。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估算器的参数。

transform(X[, y])

根据 self.categories_ 转换 X 中的列。

__init__(categories: Optional[dict] = None, columns: pandas.core.indexes.base.Index = None)