如何使用 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!
问题:
我可以忽略或阻止使用 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!