dask_ml.preprocessing.Categorizer

dask_ml.preprocessing.Categorizer

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

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

这是对虚拟、独热或分类编码进行的有用预处理步骤。

参数
分类映射,可选

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

序列,可选

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

属性
columns_pandas.Index

已被分类的列。当 categories 为 None 时,这很有用,我们会检测分类和对象列。

类别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)[源代码]