Как установить значение для конкретной ячейки в Pandas DataFrame


Вы можете использовать следующий базовый синтаксис, чтобы установить значение для конкретной ячейки в кадре данных pandas:

#set value at row index 0 and column 'col_name' to be 99
df.at [0, 'col_name'] = 99

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

 points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Пример 1: установить значение одной ячейки в Pandas

Следующий код показывает, как установить значение в 3-й индексной позиции столбца «точки» равным 99:

#set value in 3rd index position and 'points' column to be 99
df.at [3, 'points'] = 99

#view updated DataFrame
df

 points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 99 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Обратите внимание, что значение в 3-й позиции индекса столбца «точки» было изменено, а все остальные значения в DataFrame остались прежними.

Пример 2: установить значение нескольких ячеек в Pandas

В следующем коде показано, как одновременно установить значение нескольких ячеек в диапазоне:

#set values in index positions 0 to 3 in 'points' column to be 99 
df.at [0:3, 'points'] = 99

#view updated DataFrame
df

 points assists rebounds
0 99 5 11
1 99 7 8
2 99 7 10
3 99 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Пример 3. Условное задание значений в Pandas

В следующем коде показано, как установить значения в столбце «Подборы» равными 99, только если значение в столбце очков больше 20:

#set values in 'rebounds' column to be 99 if value in points column is greater than 20
df.loc[df['points']>20, ['rebounds']] = 99

#view updated DataFrame
df

 points assists rebounds
0 25 5 99
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 99
6 25 9 99
7 29 4 99

Обратите внимание, что каждое значение в столбце подборов было изменено на 99, если значение в столбце очков было больше 20.

Все остальные значения остались прежними.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции в pandas:

Как получить значение ячейки из Pandas DataFrame
Как получить первую строку Pandas DataFrame
Как получить первый столбец Pandas DataFrame
Как получить индекс строк, столбец которых соответствует значению в Pandas