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