Ввод ValueError содержит NaN, бесконечность или значение, слишком большое для dtype ('float64') Scitkit Learn - PullRequest
0 голосов
/ 09 ноября 2019

Я прочитал очень много сообщений по этому поводу и не могу найти свой ответ.

import pandas as pd

После импорта панд я читаю файл csv, используя pandas.read_csv. Файл csv содержит 32 столбца и ~ 280 000 строк.

data = pd.read_csv(path)
# Add unique index column to data
data = data.reset_index()

Затем я использую функцию pandas.dropna, чтобы мои данные не имели значений nan.

dropped_values = data.dropna(inplace=True)
print(dropped_value.dtypes)
# returns all float64 types

Также проверил это из популярного ответа с ответом

np.any(np.isnan(dropped_values))
# prints false
np.all(np.isfinite(dropped_values))
# prints true

, и все же я все еще получаю

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

...

ValueError                                Traceback (most recent call last)
    <ipython-input-75-f81bb23d00b2> in <module>
     76 
     77 
     ---> 78 for train_index, test_index in strat_split.split(dropped_values, 
     dropped_values["time_attribute"]):

из строки с циклом for

strat_split = StratifiedShuffleSplit(n_splits=1, test_size=0.25, random_state=42)

dropped_values["time_attribute"] = pd.cut(dropped_values["Time"], 
                                       bins=[0., 35000, 70000, 105000, 140000, 175000., np.inf],
                                       labels=[1, 2, 3, 4, 5, 6])


for train_index, test_index in strat_split.split(dropped_values, dropped_values["time_attribute"]):
    strat_train_set = dropped_values.loc[train_index]
    strat_test_set = dropped_values.loc[test_index]

Я также пытался вменять данные с помощью SimpleImputer, прежде чем попытаться вызвать StartifySplit. Кроме того, я пробовал много других вариантов дропна, найденных в комментариях других постов, и, похоже, ничего не работает.

Это не имеет смысла, потому что я просмотрел данные, напечатал типы данных, проверил, являются ли они нановыми или конечными, и все дает правильный ответ.

У всех естькакие-либо другие предложения, чтобы попробовать?

Обратите внимание, что я изменил имена переменных в своем посте, чтобы сделать его более универсальным. Если я случайно пропустил букву / символ, вероятно, это была просто ошибка при создании сообщения.

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