AttributeError:“系列”对象没有属性“重塑”

新手上路,请多包涵

我正在使用 sci-kit 学习线性回归算法。在缩放 Y 目标特征时:

 Ys = scaler.fit_transform(Y)

我有

ValueError:预期的二维数组,得到的是一维数组:

之后我重塑使用:

 Ys = scaler.fit_transform(Y.reshape(-1,1))

但是又报错了:

AttributeError:“系列”对象没有属性“重塑”

所以我检查了 pandas.Series 文档页面,它说:

reshape(*args, **kwargs) 从 0.19.0 版开始弃用。

原文由 Hrvoje 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 483
2 个回答

解决方案已链接到 文档页面 上的重塑方法。

Insted of Y.reshape(-1,1) 你需要使用:

 Y.values.reshape(-1,1)

原文由 Hrvoje 发布,翻译遵循 CC BY-SA 4.0 许可协议

解决方案确实是这样做的:

Y.values.reshape(-1,1)

这将使用 pandas Series 对象的值提取一个 numpy 数组,然后将其重塑为二维数组。

您需要这样做的原因是 pandas Series 对象在设计上是一维的。如果您想留在 pandas 库中,另一种解决方案是将 Series 转换为 DataFrame,后者将是 2D:

 Y = pd.Series([1,2,3,1,2,3,4,32,2,3,42,3])

scaler = StandardScaler()

Ys = scaler.fit_transform(pd.DataFrame(Y))

原文由 João Almeida 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题