python - Pandas 类型错误: unhashable type: 'slice'

标签 python pandas machine-learning artificial-intelligence data-science

我正在尝试运行以下代码,它显示标题中的错误。有人知道发生了什么事吗?

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])

Pandas documentation on indexing is quite good .

关于python - Pandas 类型错误: unhashable type: 'slice' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903553/

相关文章:

python - 来自导入 : GObject 的 undefined variable

在 Windows 上从 PATH 运行时 Python 脚本丢失参数

python - Pandas 将 2 个数据框合并为一张图

python - Pandas 基于另一列添加新列(错误数量超过 19,放置意味着 1)

apache-spark - 如何服务 Spark MLlib 模型?

python - 如何在不循环的情况下顺序更新 Numpy 数组

python - 无法加载自定义数据集

Python Pandas - 识别数据帧列中第一个匹配值的索引

machine-learning - 随着批量大小的变化,学习率应该如何变化?

machine-learning - 在 tensorflow 中实现 MLP