用于编码分类数据的 Python“TypeError: unhashable type: 'slice'”

新手上路,请多包涵

我正进入(状态

TypeError:无法散列的类型:’slice’

在执行以下代码以在 Python 中编码分类数据时。有人可以帮忙吗?

 # Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the dataset
dataset = pd.read_csv('50_Startups.csv')
y=dataset.iloc[:, 4]
X=dataset.iloc[:, 0:4]

# Encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 3] = labelencoder_X.fit_transform(X[:, 3])

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

阅读 1.1k
1 个回答

X 是一个数据帧,不能通过切片术语访问 X[:, 3] 。您必须通过 ilocX.values 访问。但是,您构建的方式 X 使其成为一个副本……所以。我会使用 values

 # Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the dataset
# dataset = pd.read_csv('50_Startups.csv')

dataset = pd.DataFrame(np.random.rand(10, 10))
y=dataset.iloc[:, 4]
X=dataset.iloc[:, 0:4]

# Encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()

#  I changed this line
X.values[:, 3] = labelencoder_X.fit_transform(X.values[:, 3])

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

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