使用SettingWithCopyWarning
,有时它会引导您触发警告的模块中的确切代码行(例如here),有时则不会引用(例如here })。
没有经过代码的每一行(如果您正在审查数百行代码,这听起来不太吸引人),是否有办法确定触发警告的代码行警告不会返回该信息?
我想知道这是警告中的错误,如果没有指出触发它的特定代码就会返回警告。
Warning (from warnings module):
File "C:\Python34\lib\site-packages\pandas\core\indexing.py", line 415
self.obj[item] = s
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Python 3.4,Pandas 0.15.0
答案 0 :(得分:0)
通过将SettingWithCopyError
选项设置为SettingWithCopyWarning
而不是mode.chained_assignment
,您可以让pandas提升raise
而不是warn
。
import pandas
pd.set_option('mode.chained_assignment', 'raise')
https://pandas.pydata.org/pandas-docs/stable/options.html#available-options