Добавление пустого символьного столбца в pandas dataframe работает странно - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть фрейм данных, к которому я хочу добавить новый столбец «Being_narrative». Информация о кадре выглядит следующим образом:

Dataframe Info

У кадра данных следующие индексы строк:

enter image description here

Я попытался добавить новый столбец строкового типа с помощью этой команды:

explain_instance_to_explain_df_sorted_top6['being_narrative'] = ""

Тем не менее он выдает предупреждение «Настройка с копированием»:

_main __: 1: SettingWithCopyWarning: Значение пытается быть установлено для копии среза из DataFrame. Попробуйте вместо этого использовать .loc [row_indexer, col_indexer] = значение

Я не получаю это предупреждение, когда пытаюсь использовать указанную выше команду на другом кадре данных: enter image description here

Более того, новые значения не присваиваются этому столбцу

explain_instance_to_explain_df_sorted_top6['being_narrative'] = ""
for index,row in explain_instance_to_explain_df_sorted_top6.iterrows() :
   row['being_narrative']= str(np.where( row.obs_instance_to_explain not in (0,1) and row.features not in ('NUM_CASES'),' being '+str(row.obs_instance_to_explain),''))

после выполнения выше назначения, новый столбец по-прежнему пуст: enter image description here

Однако, это работает индивидуально, как показано здесь: enter image description here

Кажется, что проблема заключается в кадре данных. В чем может быть проблема? Заранее спасибо!

Обновление:

Попробовал использовать предложение @ Aryerez для использования соглашения .loc, сначала удалив столбец, а затем используя:

explain_instance_to_explain_df_sorted_top6.loc[:, 'being_narrative'] = ""

Но снова получил предупреждениеявно существует проблема с фреймом данных:

enter image description here

...