How to find the line that is generating a Pandas SettingWithCopyWarning? How to find the line that is generating a Pandas SettingWithCopyWarning? python python

How to find the line that is generating a Pandas SettingWithCopyWarning?


Set pd.options.mode.chained_assignment = 'raise'

This will throw an exception pointing to the line which triggers SettingWithCopyError.

UPDATE: how to catch the error, and interrogate the stacktrace to get the actual offending lineno:

import pandas as pdfrom inspect import currentframe, getframeinfofrom pandas.core.common import SettingWithCopyErrorpd.options.mode.chained_assignment = 'raise'df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})df2 = df[df['a'] == 2]try:    df2['b'] = 'foo'except SettingWithCopyError:    print('handling..')    frameinfo = getframeinfo(currentframe())    print(frameinfo.lineno)