2015-05-22 2 views
4

У меня есть большой блок кода, который в какой-то момент где-то генерирует параметр с предупреждением о копировании в pandas (this problem).Как найти строку, генерирующую настройку с предупреждением о копировании?

Я знаю, как исправить проблему, но я не могу найти номер строки! Есть ли способ отменить номер строки (кроме методов грубой силы, таких как отладка или многократное отпечатки)? Единственный выход я получаю это ниже, который не идет в стек, чтобы мой код:

C:\Anaconda3\lib\site-packages\pandas\core\frame.py:2302: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame **kwargs) 
+0

Насколько велик код? Я имею в виду, не можете ли вы просто отсканировать код для '='? – EdChum

+0

~ 2000 строк ... – tim654321

+0

Вы можете разделить и победить, прокомментировать последнюю половину кода и повторить до тех пор, пока предупреждение не исчезнет, ​​тогда вы найдете строку, у вас может появиться больше предупреждений позже, но это, вероятно, вызовет образец для вас. Я бы посмотрел, где вы ссылаетесь на некоторые строки или столбец df, а затем попытаетесь назначить ему – EdChum

ответ

1

Попробуйте установить pd.options.mode.chained_assignment = «поднять».

Это вызовет исключение, указывающее на строку, которая запускает параметр SettingWithCopyError.

+0

Работает отлично, спасибо! – Plasma

Смежные вопросы