make_column_selector#

class sklearn.compose.make_column_selector(pattern=None, *, dtype_include=None, dtype_exclude=None)[源码]#

创建一个可调用对象,用于选择与 ColumnTransformer 一起使用的列。

make_column_selector 可以根据数据类型或列名(使用正则表达式)选择列。当使用多个选择条件时,列必须匹配所有条件才能被选中。

有关如何在 ColumnTransformer 中使用 make_column_selector 根据数据类型(即 dtype)选择列的示例,请参阅 混合类型列转换器

参数:
patternstr, 默认值=None

将包含此正则表达式模式的列名选中。如果为None,则不根据模式选择列。

dtype_include列数据类型或列数据类型列表, 默认值=None

要包含的数据类型选择。有关更多详细信息,请参阅 pandas.DataFrame.select_dtypes

dtype_exclude列数据类型或列数据类型列表, 默认值=None

要排除的数据类型选择。有关更多详细信息,请参阅 pandas.DataFrame.select_dtypes

返回:
selector可调用对象

用于列选择的可调用对象,将由 ColumnTransformer 使用。

另请参阅

ColumnTransformer

该类允许将多个转换器对象在数据列子集上使用的输出组合成一个单一的特征空间。

示例

>>> from sklearn.preprocessing import StandardScaler, OneHotEncoder
>>> from sklearn.compose import make_column_transformer
>>> from sklearn.compose import make_column_selector
>>> import numpy as np
>>> import pandas as pd  
>>> X = pd.DataFrame({'city': ['London', 'London', 'Paris', 'Sallisaw'],
...                   'rating': [5, 3, 4, 5]})  
>>> 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)  
array([[ 0.90453403,  1.        ,  0.        ,  0.        ],
       [-1.50755672,  1.        ,  0.        ,  0.        ],
       [-0.30151134,  0.        ,  1.        ,  0.        ],
       [ 0.90453403,  0.        ,  0.        ,  1.        ]])
__call__(df)[源码]#

用于列选择的可调用对象,将由 ColumnTransformer 使用。

参数:
df形状为 (n_features, n_samples) 的数据框

从中选择列的数据框。