プログラムを実行すると、Pandasは毎回以下のような「将来の警告」を出します。
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)
メッセージを取得しましたが、Pandasそのようなメッセージを何度も表示するのを止めたいだけです。Pandas not 「将来の警告」をポップアップしますか?
これを github ...で見つけました.
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)
@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
ライブラリを使用します。さて、Wordのとおり、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.
>>>
実際、all警告を無効にすると、同じ出力が生成されます。
>>> 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.
>>>
標準ライブラリの意味では、これらは真の警告ではありません。 Pandasは独自の警告システムを実装しています。警告メッセージで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
さらに追いかけてみると、私にはこの時間がありません。そして、おそらくあなたもそうしません。うまくいけば、これがウサギの穴から落ちないようにするか、おそらく誰かにこれらのメッセージを本当に抑制する方法を見つけ出すように促すでしょう!