我如何重塑一个序列,以便我可以使用它的Scitkit-learn标准标量函数?



对于下面的代码,我得到一个ValueError:期望2D数组,得到1D数组错误消息。

因此,我也尝试了scaler.fit_transform(df[0]).reshape(-1,1),但得到了相同的错误,而不是下面的最后一行。如何转换一个pandas系列,以便使用scikit learn StandardScaler对其进行缩放?

In [1]: import numpy as np
...: import pandas as pd
...: from sklearn.preprocessing import StandardScaler
...: from sklearn.model_selection import train_test_split
...: X = np.random.uniform(size=15)
...: index = pd.date_range(start = "2020-12-31", periods=15)
...: df = pd.DataFrame(X, index=index)
In [2]: scaler.fit_transform(df[0])

您没有将重塑函数应用于数据帧,而是应用于StandardScaler的输出。

你需要做的是将重塑函数应用到数据帧值

df_r = df[0].values.reshape(-1, 1)

得到一个2d向量,然后传递给StandardScaler

scaler.fit_transform(df_r)

或者,您可以像Flavia Giammarino的评论那样一步完成。

相关内容

最新更新