scikit learn's fit_transform是否也会改变我的原始数据框架?

时间:2015-07-07 08:17:07

标签: python pandas scikit-learn

我正在使用scikit learning的StandardScaler()并注意到在应用变换(xtrain)或fit_transform(xtrain)之后,它还会更改我的xtrain数据帧。这应该发生吗?如何避免StandardScaler更改我的数据帧? (我尝试过使用copy = False)

xtrain.describe()    #everything ok here
scalar = StandardScaler()
xtrain2 = scalar.fit_transform(xtrain)   

在这个阶段,我希望xtrain没有改变,而xtrain2是xtrain的缩放版本。但是当我在2个数据帧上运行describe()时,我发现它们都是相同的,并且都已经缩放。那是为什么?

我遇到同样的问题:

scalekey = scalar.fit(xtrain)
xtrain2 = scalekey.transform(xtrain)

2 个答案:

答案 0 :(得分:3)

您可以复制并传递此内容,以便不修改您的df:

xtrain2 = xtrain.copy()
scalar.fit_transform(xtrain2) 

docs表示StandardScaler的默认参数是copy=True,因此它不应该修改你的df。

答案 1 :(得分:0)

考虑在pandas和scikit-learn中升级到0.16.x或更高版本。包装作者不断改进每个包装对待另一个包装的方式。

相关问题