Как избавиться от settingWithCopyWarning при создании нового столбца для существующего df - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь добавить новый столбец в df в pandas, однако, когда я использую вихрь из описанного ниже метода 2, но каким-то образом оба результата выдают одно и то же предупреждение после выполнения.Есть ли способ избежать этого без копирования df

Оригинал df:

match_all = match[['country_id','league_id','season','stage','date','home_team_api_id','away_team_api_id','home_team_goal'
                     ,'away_team_goal']]

Способ 1:

def goal_diff(matches):
    return matches['home_team_goal'] - matches['away_team_goal']
match_all['home_away_goal_diff'] = goal_diff(match_all)

Предупреждающее сообщение

C: \ Users \ 5150224 \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ ipykernel_launcher.py: 3: SettingWithCopyWarning: пытается установить значение для копии фрагмента из DataFrame,Попробуйте вместо этого использовать .loc [row_indexer, col_indexer] = значение

См. Предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy Это отдельно от пакета ipykernel, поэтому мы можем избежать импорта до

Способ 2:

match_all['home_away_goal_diff'] = match_all['home_team_goal'] - match_all['away_team_goal']

предупреждение:

C: \ Users \ 5150224 \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ ipykernel_launcher.py: 1: SettingWithCopyWarning: пытается установить значение для копии среза из DataFrame.Попробуйте вместо этого использовать .loc [row_indexer, col_indexer] = значение

См. Предостережения в документации: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy "" "Точка входа для запуска ядра IPython

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...