【发布时间】:2021-10-01 05:20:53
【问题描述】:
我有一个包含许多列的数据框。我想将from sklearn.preprocessing import MinMaxScaler 中的MinMaxScaler 应用于数据框。
但是,之前我将两个数据框合并为一个,并添加了一个“类型”列来区分。所以'type'列有两个值'train'和'test'。
现在当我想对它应用标量时,它会抛出错误,说值应该是数字。我明白了。
所以我写了这样的代码:
scalar = MinMaxScaler()
data = pd.DataFrame(scalar.fit_transform(data), columns=data.columns.drop("type"))
data.head()
这意味着我只给它指定的列,对吗?但我仍然遇到同样的错误。
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-216-85712d22d323> in <module>
1 scalar = MinMaxScaler()
----> 2 data = pd.DataFrame(scalar.fit_transform(data), columns=data.columns.drop("type"))
3
4 data.head()
5
ValueError: could not convert string to float: 'train'
我想要的只是将转换应用于除特定“类型”列之外的所有列。有没有办法用熊猫做到这一点?如果没有,有什么替代方案?
我是这些东西的新手,所以请多解释一下你的解决方案。
我还注意到 sklearn 的所有方法都适用于 numpy 而不是 pandas 数据框。一切都将数组作为参数而不是数据框。是否可以将数据帧作为输入发送?
【问题讨论】:
标签: python pandas scikit-learn