Kiedy uruchamiam program, Pandas za każdym razem wyświetla „Ostrzeżenie o przyszłości”, jak poniżej.
D:\Python\lib\site-packages\pandas\core\frame.py:3581: FutureWarning: rename with inplace=True will return None from pandas 0.11 onward
" from pandas 0.11 onward", FutureWarning)
Otrzymałem wiadomość, ale chcę po prostu zatrzymać wyświetlanie takiej wiadomości przez Pandy. Czy jest jakiś parametr buildin, który mogę ustawić, aby Pandas nie wyświetlał `` Ostrzeżenia o przyszłości ''?
python
pandas
suppress-warnings
future-warning
wielki robak
źródło
źródło
warnings....ignore
przedimport pandas...
aby spowodować, żeFutureWarning
będą ignorowane.Odpowiedź @ bdiamante może tylko częściowo pomóc. Jeśli nadal otrzymujesz komunikat po zniesieniu ostrzeżeń, to dlatego, że
pandas
sama biblioteka drukuje komunikat. Niewiele możesz z tym zrobić, chyba że samodzielnie edytujesz kod źródłowy Pandas. Może istnieje wewnętrzna opcja ich stłumienia lub sposób na zastąpienie pewnych rzeczy, ale nie mogłem go znaleźć.Dla tych, którzy chcą wiedzieć, dlaczego ...
Załóżmy, że chcesz zapewnić czyste środowisko pracy. Na początku skryptu umieść
pd.reset_option('all')
. Dzięki Pandas 0.23.4 otrzymujesz:Zgodnie z radą @ bdiamante korzystasz z
warnings
biblioteki. Teraz, zgodnie z tym, co mówi, ostrzeżenia zostały usunięte. Pozostało jednak kilka nieznośnych wiadomości:W rzeczywistości wyłączenie wszystkich ostrzeżeń daje ten sam wynik:
W sensie biblioteki standardowej nie są to prawdziwe ostrzeżenia . Pandy wdrażają swój własny system ostrzegawczy. Uruchomienie
grep -rn
komunikatów ostrzegawczych pokazuje, żepandas
system ostrzegawczy jest zaimplementowany wcore/config_init.py
:Dalsze pogoń pokazuje, że nie mam na to czasu. I prawdopodobnie też nie. Miejmy nadzieję, że to uchroni cię przed wpadnięciem do króliczej nory lub może zainspiruje kogoś do wymyślenia, jak naprawdę stłumić te wiadomości!
źródło
Ostrzeżenia są denerwujące. Jak wspomniano w innych odpowiedziach, możesz je stłumić za pomocą:
Ale jeśli chcesz obsłużyć je jeden po drugim i zarządzasz większą bazą kodu, trudno będzie znaleźć wiersz kodu, który powoduje ostrzeżenie. Ponieważ ostrzeżenia w przeciwieństwie do błędów nie są dostarczane wraz ze śledzeniem kodu. Aby śledzić ostrzeżenia, takie jak błędy, możesz napisać to u góry kodu:
Ale jeśli baza kodu jest większa i importuje kilka innych bibliotek / pakietów, wtedy wszelkiego rodzaju ostrzeżenia zaczną być zgłaszane jako błędy. Aby podnieść tylko określony typ ostrzeżeń (w twoim przypadku jego FutureWarning) jako błąd, możesz napisać:
źródło