Установить значение для конкретной ячейки в DataFrame pandas с использованием индекса
Я создал Pandas DataFrame:
df = DataFrame(index=['A','B','C'], columns=['x','y'])
Теперь я хотел бы присвоить значение определенной ячейке, например, в строке C
и столбце x
. То есть, я хочу выполнить следующую трансформацию:
x y x y
A NaN NaN A NaN NaN
B NaN NaN ⟶ B NaN NaN
C NaN NaN C 10 NaN
Для этого я использую следующий код:
df.xs('C')['x'] = 10
Однако содержимое df
не изменилось. DataFrame до сих пор содержит только NaN
. Как мне добиться желаемого результата?
5 ответ(ов)
Вы также можете использовать условный поиск с помощью .loc
, как показано здесь:
df.loc[df[<имя_колонки_для_проверки>] == <условие>, [<имя_колонки_для_добавления>]] = <значение_для_добавления>
где <имя_колонки_для_проверки>
— это колонка, к которой вы хотите применить переменную <условие>
, а <имя_колонки_для_добавления>
— это колонка, в которую вы хотите добавить значение (это может быть новая колонка или уже существующая). <значение_для_добавления>
— это значение, которое вы хотите добавить в указанную колонку/строку.
Этот пример может не полностью соответствовать вашему вопросу, но он может быть полезен для тех, кто хочет добавить конкретное значение на основе условия.
Попробуйте использовать df.loc[row_index, col_indexer] = value
.
Рекомендуемый способ (согласно разработчикам) установить значение выглядит так:
df.ix['x', 'C'] = 10
Использование 'цепочечного индексирования' (df['x']['C']
) может привести к проблемам.
Смотрите:
Чтобы задать значения в DataFrame, используйте следующий код:
df.at[0, 'clm1'] = 0
- Это самый быстрый рекомендованный метод для задания переменных.
- Методы
set_value
иix
устарели. - Нет предупреждений, в отличие от
iloc
иloc
.
Я бы предложил следующий способ:
df.loc[index_position, "column_name"] = some_value
Для изменения нескольких ячеек одновременно можно использовать такой синтаксис:
df.loc[start_idx_pos: end_idx_pos, "column_name"] = some_value
Как удалить строки DataFrame в Pandas с NaN в определённом столбце
Преобразование списка словарей в DataFrame pandas
Объединение двух столбцов текста в DataFrame pandas
Получить список из колонки или строки DataFrame в pandas?
Выбор строки из pandas Series/DataFrame по целочисленному индексу