如何在 python 中规范化或标准化数据集的特定或选定特征

Posted

技术标签:

【中文标题】如何在 python 中规范化或标准化数据集的特定或选定特征【英文标题】:How to Normalize or standardize specific or selected features of a data set in python 【发布时间】:2019-11-08 15:25:56 【问题描述】:

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

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

从 sklearn.compose 导入 ColumnTransformer

从 sklearn.preprocessing 导入 StandarScaler

column_trans = ColumnTransformer(

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

remainder='passthrough') 

column_trans.fit_transform(X)

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

但我收到以下错误消息。

文件“”,第 5 行 余数='直通') ^ SyntaxError: 无效语法

【问题讨论】:

]] 之后是否缺少, 【参考方案1】:

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

从 sklearn.preprocessing 导入标准化

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

continuous_data= 电信[continuous_columns]

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

normalized_data = normalize(continuous_data)

【讨论】:

【参考方案2】:

你可以试试这个

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 包含您要查找的内容。

希望这会有所帮助!

【讨论】:

@parthasarathy 我收到了这个错误信息:ValueError: could not convert string to float: 看起来你的列不是浮动的,所以添加了一个用于类型转换的段。希望这会有所帮助 还是一样的错误信息:ValueError: could not convert string to float: 也给出了此错误消息,试图在数据帧的切片副本上设置值。尝试改用 .loc[row_indexer,col_indexer] = value 请参阅文档中的警告:pandas.pydata.org/pandas-docs/stable/… 从 sys.path 中删除 cwd 后。谢谢 您可以发布您的数据样本和整个引用错误吗?

以上是关于如何在 python 中规范化或标准化数据集的特定或选定特征的主要内容,如果未能解决你的问题,请参考以下文章

标准偏差为零的归一化

Python:sklearn中StandardScaler和scale的区别

如何在 Python 中提高不平衡数据集的精度和召回率

如何在 For 语句中运行 If 语句以仅显示数据集的特定行

如何使用标准查询或使用 UDF 标记一行并将其特定值存储在 Hive 中?

何时在机器学习中执行规范化或标准化? [关闭]