Pandas:SettingWithCopyWarning触发位置

时间:2014-12-26 16:17:27

标签: python pandas

使用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

1 个答案:

答案 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