sklearn.compose ColumnTransformer转换具有不同功能的另一个数据框

时间:2019-02-16 15:37:47

标签: scale

我正在尝试缩放两个不同的数据帧,以适合df1上的MinMaxScaler并使用它来转换df2。 发生此问题的原因是df2包括df1中的所有功能,除了两个。 MinMaxScaler返回错误:形状不匹配。 因此,我尝试使用sklearn.compose.ColumnTransformer,因为它存储了适合的功能名称。 但是我不知道如何使用拟合缩放器中与df2中的特征匹配的特征子集来转换df2

import numpy as np
from sklearn.compose import ColumnTransformer, make_column_transformer
from sklearn.preprocessing import MinMaxScaler
df1 = pd.DataFrame({'a': [1,2,3,4,5], 'b': [2,5,2,6,7], 'c': [4,2,6,1,2]})

df2 = pd.DataFrame({'a': [1,2,3,4,5], 'b': [2,5,2,6,7]})

scaler = MinMaxScaler(feature_range=(0, 1))
ct = make_column_transformer((data.columns, scaler))

ct.fit(df1)

ct.transform(df2)

这将返回形状为df1的已转换df2,包括df2中不存在的列'b'。

ct.get_feature_names shows all features that scaler has been fitted on, but I can not subset the necessary ones.

如何使用fit ct转换仅存在于df2中的df2功能?

0 个答案:

没有答案