Итак, я довольно новичок в python в целом и пытаюсь следовать учебному пособию, чтобы нормализовать и масштабировать все мои данные; однако, я продолжаю получать ошибку. Я использую Scikit-Learn с pandas. Я искал и попробовал почти все, что мог придумать, но все еще получаю эту ошибку.
Я продолжаю получать эту ошибку, которая восходит к preprocessing.scale:
ValueError: Input contains infinity or a value too large for dtype('float64').
Столбец, который возвращает ошибку, имеет минимум -10.3800048828125
и максимум 10.209991455078123
. Все типы данных float64
или int64
(но не в этом столбце). Я пробовал несколько методов избавления от бесконечностей и NaN, но ни один из них, похоже, не работает. Если у кого-нибудь есть какой-либо совет, он будет очень признателен!
Код, который вызывает проблему, находится здесь:
def preprocess_df(df):
df = df.drop('future', 1)
df.replace([np.inf, -np.inf], np.nan)
df.fillna(method='bfill', inplace=True)
df.dropna(inplace=True)
for col in df.columns:
print("Trying Column: " + col)
if col != "target":
df[col] = df[col].pct_change()
df.dropna(inplace=True)
df[col] = preprocessing.scale(df[col].values)
df.dropna(inplace=True)
sequential_data = []
prev_days = deque(maxlen=SEQ_LEN)
for i in df.values:
prev_days.append([n for n in i[:-1]]) #appends every column to the prev days list, except for target (we don't want that to be known)
if len(prev_days) == SEQ_LEN:
sequential_data.append([np.array(prev_days), i[:-1]])
random.shuffle(sequential_data)