PandasTypeError: unhashable тип: 'slice' - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь запустить следующий код, и он показывает ошибку в заголовке.Кто-нибудь знает, что происходит?

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

1 Ответ

0 голосов
/ 23 декабря 2018

X - это фрейм данных в последней строке вашего кода, поэтому вы не можете использовать индексирование на основе массива (как при работе с numpy array), если вы не используете .loc или .iloc.В этом случае вы можете использовать любой из них для доступа к первому столбцу, поскольку позиция (0) совпадает с именем столбца (0):

X.loc[:, 0] = labelencoder_X.fit_transform(X.loc[:, 0])

pandas документация по индексации довольно хорошая .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...