如何在 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的区别
如何在 For 语句中运行 If 语句以仅显示数据集的特定行