gpt4 book ai didi

python-3.x - 在 Pandas 列上应用 MinMaxScaler()

转载 作者:行者123 更新时间:2023-12-03 15:49:41 24 4
gpt4 key购买 nike

我正在尝试使用 sklearn MinMaxScaler 重新调整如下所示的 python 列:

scaler = MinMaxScaler()
y = scaler.fit(df['total_amount'])

但得到以下错误:
Traceback (most recent call last):
File "/Users/edamame/workspace/git/my-analysis/experiments/my_seq.py", line 54, in <module>
y = scaler.fit(df['total_amount'])
File "/Users/edamame/workspace/git/my-analysis/venv/lib/python3.4/site-packages/sklearn/preprocessing/data.py", line 308, in fit
return self.partial_fit(X, y)
File "/Users/edamame/workspace/git/my-analysis/venv/lib/python3.4/site-packages/sklearn/preprocessing/data.py", line 334, in partial_fit
estimator=self, dtype=FLOAT_DTYPES)
File "/Users/edamame/workspace/git/my-analysis/venv/lib/python3.4/site-packages/sklearn/utils/validation.py", line 441, in check_array
"if it contains a single sample.".format(array))
ValueError: Expected 2D array, got 1D array instead:
array=[3.180000e+00 2.937450e+03 6.023850e+03 2.216292e+04 1.074589e+04
:
0.000000e+00 0.000000e+00 9.000000e+01 1.260000e+03].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

知道出了什么问题吗?

最佳答案

MinMaxScaler 的输入需要类似数组,使用 shape [n_samples, n_features] .因此,您可以将其作为数据框而不是系列应用于列(使用双方括号而不是单):

y = scaler.fit(df[['total_amount']])
虽然从您的描述来看,您似乎想要 fit_transform而不仅仅是 fit (但我可能是错的):
y = scaler.fit_transform(df[['total_amount']])

多一点解释:
如果您的数据框有 100 行,请考虑将列转换为数组时的形状差异:
>>> np.array(df[['total_amount']]).shape
(100, 1)

>>> np.array(df['total_amount']).shape
(100,)
第一个返回匹配 [n_samples, n_features] 的形状(根据 MinMaxScaler 的要求),而第二个则没有。

关于python-3.x - 在 Pandas 列上应用 MinMaxScaler(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com