Python"TypeError:unhashable type:'slice'"用于编码分类数据

kau*_*hat 53 python numpy matplotlib pandas

我正进入(状态

TypeError:不可用类型:'sl​​ice'

执行以下代码时,在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])
Run Code Online (Sandbox Code Playgroud)

piR*_*red 88

X是一个数据帧,不能通过切片术语来访问X[:, 3].您必须通过iloc或访问X.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])
Run Code Online (Sandbox Code Playgroud)


小智 6

如上所述,在创建变量X或编码时使用值

# 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].values
X=dataset.iloc[:, 0:4].values
Run Code Online (Sandbox Code Playgroud)