La risposta di @ bdiamante potrebbe aiutarti solo parzialmente. Se ricevi ancora un messaggio dopo aver soppresso gli avvisi, è perché la pandas
libreria stessa sta stampando il messaggio. Non c'è molto che puoi fare al riguardo a meno che non modifichi tu stesso il codice sorgente di Panda. Forse esiste un'opzione interna per sopprimerli o un modo per ignorare le cose, ma non sono riuscito a trovarne uno.
Per chi ha bisogno di sapere perché ...
Supponiamo di voler garantire un ambiente di lavoro pulito. In cima al copione, metti pd.reset_option('all')
. Con Pandas 0.23.4, ottieni quanto segue:
>>> import pandas as pd
>>> pd.reset_option('all')
html.border has been deprecated, use display.html.border instead
(currently both are identical)
C:\projects\stackoverflow\venv\lib\site-packages\pandas\core\config.py:619: FutureWarning: html.bord
er has been deprecated, use display.html.border instead
(currently both are identical)
warnings.warn(d.msg, FutureWarning)
: boolean
use_inf_as_null had been deprecated and will be removed in a future
version. Use `use_inf_as_na` instead.
C:\projects\stackoverflow\venv\lib\site-packages\pandas\core\config.py:619: FutureWarning:
: boolean
use_inf_as_null had been deprecated and will be removed in a future
version. Use `use_inf_as_na` instead.
warnings.warn(d.msg, FutureWarning)
>>>
Seguendo il consiglio di @ bdiamante, usi la warnings
libreria. Ora, fedele alla sua parola, gli avvertimenti sono stati rimossi. Tuttavia, rimangono diversi messaggi fastidiosi:
>>> import warnings
>>> warnings.simplefilter(action='ignore', category=FutureWarning)
>>> import pandas as pd
>>> pd.reset_option('all')
html.border has been deprecated, use display.html.border instead
(currently both are identical)
: boolean
use_inf_as_null had been deprecated and will be removed in a future
version. Use `use_inf_as_na` instead.
>>>
Infatti, disabilitando tutti gli avvisi si produce lo stesso output:
>>> import warnings
>>> warnings.simplefilter(action='ignore', category=Warning)
>>> import pandas as pd
>>> pd.reset_option('all')
html.border has been deprecated, use display.html.border instead
(currently both are identical)
: boolean
use_inf_as_null had been deprecated and will be removed in a future
version. Use `use_inf_as_na` instead.
>>>
Nel senso della libreria standard, questi non sono veri avvertimenti . Pandas implementa il proprio sistema di avvisi. L'esecuzione grep -rn
dei messaggi di avviso mostra che il pandas
sistema di avviso è implementato in core/config_init.py
:
$ grep -rn "html.border has been deprecated"
core/config_init.py:207:html.border has been deprecated, use display.html.border instead
Ulteriori inseguimenti dimostrano che non ho tempo per questo. E probabilmente neanche tu. Si spera che questo ti eviti di cadere nella tana del coniglio o forse ispiri qualcuno a capire come sopprimere veramente questi messaggi!
warnings....ignore
prima ilimport pandas...
per causare ilFutureWarning
per essere ignorato.