Pandy: jak zaktualizować wartości w wierszach
Możesz użyć następującej podstawowej składni, aby zaktualizować wartości w ramce DataFrame pandy podczas korzystania z iterrows :
for i, row in df. iterrows ():
points_add = 10
if row[' points '] > 15:
points_add = 50
df. at [i,' points '] = points_add
Ten konkretny przykład wykonuje iterację po każdym wierszu ramki DataFrame i aktualizuje wartość w kolumnie z kropkami do 50 , jeśli wartość jest obecnie większa niż 15.
Jeśli bieżąca wartość jest mniejsza lub równa 15, wartość jest aktualizowana do 10 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Zaktualizuj wartości w Pandas DataFrame w wierszach
Załóżmy, że mamy następującą ramkę danych pandy, która pokazuje liczbę punktów zdobytych przez różnych koszykarzy:
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
Powiedzmy, że chcemy zaktualizować wartości w kolumnie punktów, stosując następującą logikę:
- Jeśli liczba punktów jest mniejsza lub równa 15, zaktualizuj wartość na 10 .
- Jeśli liczba punktów jest większa niż 15, zaktualizuj wartość do 50 .
Możemy użyć funkcji iterrows do iterowania po każdym wierszu ramki DataFrame i wprowadzenia następujących aktualizacji:
#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
Widzimy, że wartości w kolumnie punktów zostały odpowiednio zaktualizowane.
Uwaga : pełną dokumentację funkcji pandas iterrows() można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Pandy: jak poruszać się po kolumnach
Pandy: jak wybierać wiersze między dwiema wartościami
Pandy: zaktualizuj wartości kolumn w oparciu o inną DataFrame