python - 如何将 StandardScaler() 转换回数据框?
问题描述
我正在使用模型,在拆分为训练和测试后,我想应用 StandardScaler()。但是,这种转换将我的数据转换为数组,我想保持以前的格式。我怎样才能做到这一点?
基本上,我有:
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
X = df[features]
y = df[["target"]]
X_train, X_test, y_train, y_test = train_test_split(
X, y, train_size=0.7, random_state=42
)
sc = StandardScaler()
X_train_sc = sc.fit_transform(X_train)
X_test_sc = sc.transform(X_test)
我怎样才能X_train_sc
回到原来的格式X_train
?
更新:我不想X_train_sc
回到被缩放之前。我只想X_train_sc
以最简单的方式成为一个数据框。
解决方案
As you mentioned, applying the scaling results in a numpy array, to get a dataframe you can initialize a new one:
import pandas as pd
cols = X_train.columns
sc = StandardScaler()
X_train_sc = pd.DataFrame(sc.fit_transform(X_train), columns=cols)
X_test_sc = pd.DataFrame(sc.transform(X_test), columns=cols)
推荐阅读
- oracle - 在 Informatica 中获取系统错误代码 126
- javascript - 根据变量显示多个 div
- r - 将一个数据框的变量添加到包含更多行的数据框列表中
- python - 为什么 gensim 的 simple_preprocess Python 标记器似乎跳过了“i”标记?
- android - 有什么办法可以改变Android普通应用程序中PowerButton上的长按和HomeButton上的按下?
- asp.net-mvc - 如何将 oracle LONG 列数据类型选择到 MVC 视图?
- java - 带有 ResponseListener 的 AsyncTask
- javascript - 如果尚未在 localStorage 中,如何将新对象推送到数组
- node.js - Express:解析多部分/表单数据中的字符串数组
- scala - Apache Spark最短的工作scala