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.DataFrame
和pandas.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
中的列。