A resposta de @bdiamante pode ajudá-lo apenas parcialmente. Se você ainda receber uma mensagem depois de suprimir os avisos, é porque a pandas
própria biblioteca está imprimindo a mensagem. Não há muito que você possa fazer a menos que você mesmo edite o código-fonte do Pandas. Talvez haja uma opção internamente para suprimi-los, ou uma maneira de substituir as coisas, mas não consegui encontrar uma.
Pra quem precisa saber porque ...
Suponha que você queira garantir um ambiente de trabalho limpo. No topo do seu script, você coloca pd.reset_option('all')
. Com o Pandas 0.23.4, você obtém o seguinte:
>>> 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)
>>>
Seguindo o conselho de @bdiamante, você usa a warnings
biblioteca. Agora, fiel a sua palavra, os avisos foram removidos. No entanto, várias mensagens incômodas permanecem:
>>> 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.
>>>
Na verdade, a desativação de todos os avisos produz a mesma saída:
>>> 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.
>>>
No sentido da biblioteca padrão, esses não são avisos verdadeiros . O Pandas implementa seu próprio sistema de avisos. A execução grep -rn
das mensagens de aviso mostra que o pandas
sistema de aviso é implementado em 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
Perseguir mais mostra que não tenho tempo para isso. E provavelmente você também não. Espero que isso evite que você caia na toca do coelho ou talvez inspire alguém a descobrir como realmente suprimir essas mensagens!
warnings....ignore
antes de oimport pandas...
fazer com que oFutureWarning
ser ignorado.