как установить значение для конкретной ячейки в кадре данных - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть ячейка, для которой я хочу ее значение. Я знаю имя столбца ячейки и номер ее строки (но не ее индекс строки)

  A B
h 1 2
n 3 4

Скажем, у меня есть датафрейм выше, я должен изменить ячейку в первой строке (я не знаю ее индекс 'h') с именем столбца 'B'.

Я пытаюсь df['B'].iloc[0]=10, и это работает, но всегда выдает предупреждение.

' SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame'

так, как правильно изменить значение ячейки для моего случая?

1 Ответ

0 голосов
/ 17 ноября 2018

Смешивание этикеток и позиционное индексирование требуют немного дополнительной работы, поскольку:

  • loc / at предназначены для этикеток;
  • iloc / iat предназначены для позиционной индексации.

Вы можете преобразовать позиционный индекс строки в метку:

df.at[df.index[0], 'B'] = 10

Или вы можете преобразовать метку столбца в позиционный индекс:

df.iat[0, df.columns.get_loc('B')] = 10

Примечание : at / iat предпочтительнее, чем loc / iloc для быстрого скаляра доступ / настройка.

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