удаление NaN из набора данных - PullRequest
0 голосов
/ 27 октября 2018
 import pandas as pd
 import numpy as np
 import matplotlib.pyplot as plt
 dataset = pd.read_csv('Data.csv')
 X = dataset.iloc[:,:-1]
 y = dataset.iloc[:, 3]

from sklearn.preprocessing import Imputer
imputer =Imputer(missing_values = 'NaN', strategy = 'mean' ,axis = 0)
imputer = imputer.fit(X.values[:, 1:3])
X.values[:, 1:3] = imputer.transform(X.values[:, 1:3])

этот код работает, но не может удалить NaN из моего набора данных. Пожалуйста, помогите.

Ответы [ 4 ]

0 голосов
/ 27 октября 2018

Сначала вы не можете изменить значения pandas dataframe.Поэтому, во-первых, скопируйте значения в пустой массив, например так:

# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values

Затем вы можете делать то, что вы сделали в своем коде.Просто удалите те values в последней строке, вот так:

# Taking care of missing data
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])
0 голосов
/ 27 октября 2018

values DataFrame не являются изменяемыми (не изменяемыми), поэтому ваша последняя строка должна выдавать ошибку, потому что она пытается присвоить X.values[:, 1:3]. Вместо этого попробуйте назначить сам DataFrame, используя методы доступа .loc или iloc:

X.iloc[:, 1:3] = imputer.transform(X.values[:, 1:3])
0 голосов
/ 27 октября 2018

вот так:

X.fillna(X.mean(axis=0), axis=0)

?

0 голосов
/ 27 октября 2018

Вы ищете:

[print(X.dropna())][1]

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