Я довольно новичок в пандах и получал печально известное SettingWithCopyWarning в большом куске кода.Я свел это к следующему:
import pandas as pd
df = pd.DataFrame([[0,3],[3,3],[3,1],[1,1]], columns=list('AB'))
df
df = df.loc[(df.A>1) & (df.B>1)]
df['B'] = 10
Когда я запускаю это, я получаю предупреждение:
main : 1: SettingWithCopyWarning: значение пытается бытьустановить копию фрагмента из DataFrame.Попробуйте вместо этого использовать .loc [row_indexer, col_indexer] = значение
Странно то, что если я пропущу строку "df", она будет запущена без предупреждения.Это предполагаемое поведение?
В общем, если я хочу фильтровать DataFrame по значениям в разных столбцах, нужно ли мне делать copy (), чтобы избежать SettingWithCopyWarning?
спасибо оченьмного