@bdiamanteの答えは、部分的にしか役に立ちません。警告を抑制してもメッセージが表示される場合は、pandas
ライブラリ自体がメッセージを出力していることが原因です。Pandasのソースコードを自分で編集しない限り、それについてできることは多くありません。内部的にそれらを抑制するオプション、または物事を上書きする方法があるかもしれませんが、私はそれを見つけることができませんでした。
人のために必要とする理由を知っています...
クリーンな作業環境を確保したいとします。スクリプトの上部にを置きpd.reset_option('all')
ます。Pandas 0.23.4では、次のものが得られます。
>>> 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)
>>>
@bdiamanteのアドバイスに従って、warnings
ライブラリを使用します。今、その言葉に忠実に、警告は削除されました。ただし、いくつかの厄介なメッセージが残っています。
>>> 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.
>>>
実際、すべての警告を無効にすると、同じ出力が生成されます。
>>> 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.
>>>
標準ライブラリの意味では、これらは本当の警告ではありません。パンダは独自の警告システムを実装しています。grep -rn
警告メッセージで実行すると、pandas
警告システムがに実装されていることがわかります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
さらに追ってみると、私にはこれに時間がないことがわかります。そしておそらくあなたもそうではありません。うまくいけば、これがウサギの穴から落ちるのを防いだり、おそらくこれらのメッセージを本当に抑制する方法を理解するように誰かを鼓舞したりできます!
warnings....ignore
前にimport pandas...
引き起こすためにFutureWarning
無視されます。