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. ]])