【问题标题】:bad input shape when using labelEncoder使用 labelEncoder 时输入形状错误
【发布时间】:2020-12-16 17:13:57
【问题描述】:

我有一个相当大的数据框,其中包含数值和分类值。我正在尝试对分类值进行编码,但出现上述错误。

这是一个简单版本的代码:

from collections import defaultdict
d = defaultdict(LabelEncoder)
# Encoding the variable
fit = df[catgoricalValues].apply(lambda x: d[x.name].fit_transform(df[catgoricalValues]))

我正在使用here 描述的方法,但我没有将其应用于整个数据帧,而是指定了要编码的列。

我收到此错误:

ValueError: bad input shape (490546, 11)

【问题讨论】:

标签: python pandas scikit-learn


【解决方案1】:

更新

似乎您正在尝试将 LabelEncoder 应用于多个列; 虽然你可以apply the same LabelEncoder to all columns;

from sklearn.preprocessing import LabelEncoder

encoded = df[categoricalVal].apply(LabelEncoder().fit_transform)

最好为每一列使用一个新的编码器。上面的链接应该会为您提供解决方案。

【讨论】:

  • 我收到了同样的错误 - ValueError: bad input shape (490546, 11)
  • 感谢您的更新。有没有更好的方法来做我想做的事情?我只有一个分类值列表,我想将它们全部编码(然后稍后反转编码)。当我运行您的代码时,出现此错误 - TypeError: argument must be a string or number
  • 好的,你能提供一个你的数据集的小例子吗?
猜你喜欢
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 2021-04-08
  • 2018-08-15
相关资源
最近更新 更多