Как я могу выяснить и получить доступ к подклассам предупреждений панд?

1

Я пытаюсь устранить это широко обсуждаемое предупреждение pandas.

При попытке определить местоположение (хотя мне также интересно, как это сделать вообще), я хочу настроить warnings.simplefilter к ошибке только при настройкеWithCopyWarning.

Я пытаюсь:

import warnings
warnings.simplefilter("error", SettingWithCopyWarning)

Это не работает, потому что интерпретатор не знает, что такое SettingWithCopyWarning. Я предполагаю, что это подслой предупреждения, созданный pandas, но я не уверен, как правильно настроить этот фильтр (или как получить доступ к классу напрямую).

Для дополнительного цвета предупреждения (в последних версиях python или pandas, не знаете, где было произведено изменение). Сообщите вам местоположение, но в этом случае оно происходит в коде ядра pandas:

/path/to/my/virtualenv/lib/python2.7/site-packages/pandas/core/indexing.py:426: 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 caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[item] = s

Мне нужно увидеть всю трассировку, чтобы выяснить, что вызвал вызов pandas, который в конечном итоге вызвал это предупреждение, поэтому мое желание получить ошибку.

Спасибо, что помогли выяснить, как определить это предупреждение.

Теги:
pandas
warnings

1 ответ

1
Лучший ответ

Вам нужно указать точное местоположение:

import pandas as pd
import warnings
warnings.simplefilter("error", pd.core.common.SettingWithCopyWarning)
  • 0
    Спасибо; как насчет PerformanceWarning? Когда я пытаюсь сделать warnings.simplefilter («error», pandas.core.common.PerformanceWarning), я получаю AttributeError: у объекта «module» нет атрибута «PerformanceWarning»
  • 0
    @HaPsantran pandas.io.common.PerformanceWarning возможно?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню