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版权协议,转载请附上原文出处链接和本声明。