Как установить значения столбцов, используя .loc и .contains - PullRequest
0 голосов
/ 15 апреля 2019

Функции .loc и .contains возвращают объект dataframe. В документации Pandas говорится, что для переназначения значения каждой строке в столбце я должен использовать .loc, но в сочетании с .contains я получаю это предупреждение:

Значение пытается быть установлено для копии среза из DataFrame. Попробуйте вместо этого использовать .loc [row_indexer, col_indexer] = значение Смотрите предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

Однако процесс работает, и я получаю желаемое переназначение значений для каждой строки в столбце информационного кадра. Как я могу избежать этого предупреждения?

#works
df.loc[df["matchType"]=='duo',["matchType"]]='duo'

#warning thrown but still works
df.loc[df["matchType"].str.contains('duo'),["matchType"]]='duo'

1 Ответ

0 голосов
/ 15 апреля 2019

Я немного изменил настройки и убрал скобки вокруг индексатора столбцов, так как это был один столбец.Я также заметил строку в моем коде, которая также может быть ответственна за предупреждение, как предложил gmds, и я упростил вещи:

df.loc[(df['matchType'].str.contains('solo')==False) & 
(df['matchType'].str.contains('duo')==False),"matchType"]="other"
-->
df.loc[df['matchType'].str.contains('solo|duo')==False),"matchType"]="other"
...