我正在尝试运行以下代码,它显示标题中的错误。有人知道发生了什么事吗?
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 3].values
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])
X = pd.DataFrame(X)
Y = pd.DataFrame(Y)
from sklearn.preprocessing import LabelEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
最佳答案
X
是代码最后一行中的数据帧,因此您不能使用基于数组的索引(就像使用 numpy array
一样),除非您使用 .loc
或 .iloc
。在这种情况下,您可以使用其中之一来访问第一列,因为位置 (0
) 与列名称 (0
) 相同:
X.loc[:, 0] = labelencoder_X.fit_transform(X.loc[:, 0])
关于python - Pandas 类型错误: unhashable type: 'slice' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903553/