Обе функции .loc и .contains возвращают объект dataframe. В документации pandas указано, что для переназначения значения каждой строке в столбце я должен использовать .loc, но в сочетании с .contains я получаю это предупреждение:
Пытается установить значение для копии фрагмента из DataFrame. Попробуйте вместо этого использовать .loc[row_indexer,col_indexer] = value См. предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-копировать
Однако процесс работает, и я получаю желаемое переназначение значения для каждой строки в столбце фрейма данных. Как избежать этого предупреждения?
#works
df.loc[df["matchType"]=='duo',["matchType"]]='duo'
#warning thrown but still works
df.loc[df["matchType"].str.contains('duo'),["matchType"]]='duo'
SettingWithCopyWarning
, вероятно, связана с более ранней строкой кода; сам по себе этот фрагмент не должен вызывать проблем. - person gmds   schedule 15.04.2019