Использование SimpleImputer вместо Imputer - PullRequest
0 голосов
/ 10 марта 2019

Когда я пытаюсь использовать SimpleImputer для вычисления недостающего значения, Я получаю сообщение об ошибке типа TypeError: unhashable тип: 'slice'.

Код, который я использовал, вставлен ниже. Пожалуйста, помогите.

import numpy as np 
import matplotlib.pyplot as plt
import pandas as pd 

# for calculating mean
from sklearn.impute import SimpleImputer

# Read data from the csv file
dataset = pd.read_csv('Data.csv')

#independant vector
independant_matrix = dataset.iloc[:, :-1]  # [rows, columns] all the rows, all the columns except the last one.
#depandent matrix, just get the last column. but all rows.
depandent_matrix = dataset.iloc[:, 3] # all the rows and 4th column. index strts at 0.

# take mean of values as the missing data
imputer = SimpleImputer(missing_values = 'NaN', strategy = 'mean')

# upper bound is excluded :(
imputer.fit(independant_matrix[:, 1:3])
independant_matrix[:, 1:3] = imputer.transform(independant_matrix[:, 1:3])

1 Ответ

0 голосов
/ 10 марта 2019

independant_matrix - это Dataframe, и к нему нельзя получить доступ через терминологию срезов, например, Independant_matrix [:, 1: 3]. Вы должны использовать iloc indexer (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html#pandas.DataFrame.iloc)


    #You must change like this
    imputer.fit(independant_matrix.iloc[:, 1:3])

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