sklearn.compose.make_column_selector¶
sklearn.compose.make_column_selector(pattern=None, *, dtype_include=None, dtype_exclude=None)
创建一个可调用的列,以选择列与 ColumnTransformer
一起使用。
make_column_selector
可以根据数据类型或带有regex的列名选择列。当使用多个选择标准时,所有条件都必须匹配要选择的列。
参数 | 说明 |
---|---|
pattern | str, default=None 将包括包含此regex模式的列的名称。如果没有,则不会根据模式选择列。 |
dtype_include | column dtype or list of column dtypes, default=None 要包含的数据类型的选择。有关更多细节,请参见 pandas.DataFrame.select_dtypes 。 |
dtype_exclude | column dtype or list of column dtypes, default=None 要排除的数据类型的选择。有关更多细节,请参见 pandas.DataFrame.select_dtypes 。 |
返回值 | 说明 |
---|---|
selector | callable 可调用列选择,以供 ColumnTransformer 使用。 |
另见
该类允许将数据列子集上使用的多个转换器对象的输出组合到单个要素空间中。
示例
>>> from sklearn.preprocessing import StandardScaler, OneHotEncoder
>>> from sklearn.compose import make_column_transformer
>>> from sklearn.compose import make_column_selector
>>> import pandas as pd # doctest: +SKIP
>>> X = pd.DataFrame({'city': ['London', 'London', 'Paris', 'Sallisaw'],
... 'rating': [5, 3, 4, 5]}) # doctest: +SKIP
>>> ct = make_column_transformer(
... (StandardScaler(),
... make_column_selector(dtype_include=np.number)), # rating
... (OneHotEncoder(),
... make_column_selector(dtype_include=object))) # city
>>> ct.fit_transform(X) # doctest: +SKIP
array([[ 0.90453403, 1. , 0. , 0. ],
[-1.50755672, 1. , 0. , 0. ],
[-0.30151134, 0. , 1. , 0. ],
[ 0.90453403, 0. , 0. , 1. ]])