如何使用 warnings.simplefilter() 忽略 SettingWithCopyWarning?

How to ignore SettingWithCopyWarning using warnings.simplefilter()?

问题:

我可以忽略或阻止使用 warnings.simplefilter()SettingWithCopyWarning 打印到控制台吗?

详情:

我正在 运行 一些使用 pandas 的数据清理例程,并且这些例程是使用 batch file 以最简单的方式执行的。我的 Python 脚本中的一行触发 SettingWithCopyWarning 并打印到控制台。但它也在命令提示符中得到回应:

除了整理 之外,有什么方法可以防止错误消息像 warnings.simplefilter(action = "ignore", category = FutureWarning) 这样的 FutureWarnings 一样被打印到提示中吗?

虽然我强烈建议解决这个问题,但可以通过从 pandas.core.common 导入它来抑制警告。我在 GitHub.

找到了它的位置

示例:

import warnings

import pandas as pd
from pandas.core.common import SettingWithCopyWarning

warnings.simplefilter(action="ignore", category=SettingWithCopyWarning)

df = pd.DataFrame(dict(A=[1, 2, 3], B=[2, 3, 4]))
df[df['A'] > 2]['B'] = 5  # No warnings for the chained assignment!

您可以使用:

pd.set_option('mode.chained_assignment', None)
# This code will not complain!
pd.reset_option("mode.chained_assignment")

或者如果您更喜欢在上下文中使用它:

with pd.option_context('mode.chained_assignment', None):
    # This code will not complain!