1

我有数据,数据框的名称是表,表包含 15 个特征,我只想规范化 3 个数字数据特征,这些特征的名称是“费率”、“成本”和“总成本”。请问,我该如何解决这个问题?

我试图通过使用 Table.loc[:,['rate',cost',total cost'] 过滤它们并传递给 column_trans 来提取所需的特征

从 sklearn.compose 导入 ColumnTransformer

从 sklearn.preprocessing 导入 StandarScaler

column_trans = 列转换器(

[('scaler', StandardScaler(),Table.loc[:,['rate','cost','Totalcost']]

remainder='passthrough') 

column_trans.fit_transform(X)

我希望得到归一化特征的 0 和 1 之间的值。

但我收到以下错误消息。

文件“”,第 5 行剩余部分='passthrough') ^ SyntaxError: invalid syntax

4

2 回答 2

0

你可以试试这个

from sklearn.preprocessing import normalize

continuous_columns = ['rate','cost','Totalcost']
continuous_data= Table.loc[:, continuous_columns]
continuous_data['rate']= continuous_data['rate'].astype(float)
continuous_data['cost']= continuous_data['cost'].astype(float)
continuous_data['Totalcost']= continuous_data['Totalcost'].astype(float)
normalized_data = normalize(continuous_data)

normalized_data_df =pd.DataFrame(normalized_data , columns=continuous_columns) 
Table = Table.drop(continuous_columns, axis=1)
Final_data = pd.concat([Table, normalized_data_df ], axis=1)

现在Final_data包含您要查找的内容。

希望这可以帮助!

于 2019-06-26T17:19:01.270 回答
0

聪明的贡献@ Parthasarathy,我注意到其中一个特征是具有 NAN 值,而另一个特征是整数,所以我将 Nan 值转换为 0 并将 astype 应用于整数特征。我应用了以下代码:

从 sklearn.preprocessing 导入规范化

Continuous_columns = ['rate','cost','Totalcost']

连续数据=电信[连续列]

Continuous_data['rate']= Continuous_data['rate'].astype(float)

normalized_data = normalize(continuous_data)

于 2019-06-27T05:29:01.527 回答