Pandas: как обновить значения в строках
Вы можете использовать следующий базовый синтаксис для обновления значений в DataFrame pandas при использовании iterrows :
for i, row in df. iterrows ():
points_add = 10
if row[' points '] > 15:
points_add = 50
df. at [i,' points '] = points_add
В этом конкретном примере выполняется итерация по каждой строке DataFrame и обновляется значение в столбце с точками до 50 , если значение в данный момент больше 15.
Если текущее значение меньше или равно 15, значение обновляется до 10 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: обновить значения в Pandas DataFrame в строках
Предположим, у нас есть следующий DataFrame pandas, который показывает количество очков, набранных разными баскетболистами:
import pandas as pd #createDataFrame df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'], ' points ': [10, 12, 14, 15, 15, 15, 16, 17, 20]}) #view DataFrame print (df) player points 0 to 10 1 B 12 2 C 14 3 D 15 4 E 15 5 F 15 6 G 16 7:17 a.m. 8 I 20
Допустим, мы хотим обновить значения в столбце точек, используя следующую логику:
- Если количество баллов меньше или равно 15, обновите значение до 10 .
- Если количество баллов превышает 15, обновите значение до 50 .
Мы можем использовать функцию iterrows для перебора каждой строки DataFrame и внесения следующих обновлений:
#iterate over each row in DataFrame and update values in points column
for i, row in df. iterrows ():
points_add = 10
if row[' points '] > 15:
points_add = 50
df. at [i,' points '] = points_add
#view updated DataFrame
print (df)
player points
0 to 10
1 B 10
2 C 10
3 D 10
4 E 10
5 F 10
6 G 50
7:50 a.m.
8 I 50
Мы видим, что значения в столбце точек соответствующим образом обновились.
Примечание . Полную документацию по функции pandas iterrows() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Pandas: как перемещаться по столбцам
Pandas: как выбрать строки между двумя значениями
Pandas: обновить значения столбцов на основе другого DataFrame