【机器学习】数据预处理之fit_transform

fit_transform()训练数据使用

transform()测试数据使用

参考:https://blog.csdn.net/yyhhlancelot/article/details/85097656

fit_transform()训练数据使用返回值有三项:归一化后的值,均值,方差。

如何给原数据中的一项重新赋值呢?

直接df['Age_scaled'] = scaler.fit_transform(df['Age'])的话会报错:因为把三项赋给一项了。

目前只想到了这样的方法:

df['Age_scaled'] = [x[0] for x in scaler.fit_transform(df['Age'])]

2020/09/22更新:

处理测试数据的时候报错:ValueError: Expected 2D array, got 1D array instead:

Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

本来还以为是测试数据读取有问题,后来才发现是版本问题,应该reshape。

那么为什么训练数据没报错呢?因为get_dummies忘了指定列名,得到了三列重复的‘Age’,哈哈。

正确的应该是:

df['Age_scaled'] = scaler.fit_transform(df['Age'].values.reshape(-1, 1))
print(type(df['Age'])):<class 'pandas.core.series.Series'>

print(type(df['Age'].values)):<class 'numpy.ndarray'>
 

版权声明:本文为weixin_42182906原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。