Подавить предупреждение Python - PullRequest
0 голосов
/ 19 февраля 2019

Пока я выполняю итерацию в цикле for, я постоянно получаю одно и то же предупреждение, которое хочу подавить.Предупреждение звучит так:

C:\Users\Nick Alexander\AppData\Local\Programs\Python\Python37\lib\site-packages\sklearn\preprocessing\data.py:193: UserWarning: Numerical issues were encountered when scaling the data and might not be solved. The standard deviation of the data is probably very close to 0. warnings.warn("Numerical issues were encountered "

Код, который выдает предупреждение, выглядит следующим образом:

def monthly_standardize(cols, df_train, df_train_grouped, df_val, df_val_grouped, df_test, df_test_grouped):
    # Disable the SettingWithCopyWarning warning
    pd.options.mode.chained_assignment = None
    for c in cols:
        df_train[c] = df_train_grouped[c].transform(lambda x: scale(x.astype(float)))
        df_val[c] = df_val_grouped[c].transform(lambda x: scale(x.astype(float)))
        df_test[c] = df_test_grouped[c].transform(lambda x: scale(x.astype(float)))
    return df_train, df_val, df_test

Я уже отключил одно предупреждение.Я не хочу отключать все предупреждения, я просто хочу отключить это предупреждение.Я использую Python 3.7 и Sklearn версии 0.0

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

У библиотеки Python contextmamager для этого есть: suppress

from contextlib import suppress

with suppress(UserWarning):
    for c in cols:
        df_train[c] = df_train_grouped[c].transform(lambda x: scale(x.astype(float)))
        df_val[c] = df_val_grouped[c].transform(lambda x: scale(x.astype(float)))
0 голосов
/ 19 февраля 2019

Попробуйте в начале скрипта:

import warnings
warnings.filterwarnings("ignore", message="Numerical issues were encountered ")
...