Метод iterrows
Метод iterrows применяется к DataFrame
и возвращает итератор, который перебирает все строки таблицы.
При каждой итерации он генерирует кортеж из двух элементов:
индекс строки и объект Series, представляющий собой саму строку.
Этот метод удобен для построчной обработки данных, но он не самый
быстрый, поэтому для больших таблиц рекомендуется использовать
векторизованные операции или метод itertuples.
Синтаксис
df.iterrows()
Пример
Давайте переберем все строки таблицы и выведем их индексы и содержимое:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
for index, row in df.iterrows():
print(f"Index: {index}")
print(f"Row: {row['a']}, {row['b']}")
Результат выполнения кода:
Index: 0
Row: 1, 10
Index: 1
Row: 2, 20
Index: 2
Row: 3, 30
Index: 3
Row: 4, 40
Index: 4
Row: 5, 50
Пример
Давайте с помощью цикла изменим значения в столбце 'a' в зависимости от индекса строки:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
for i, row in df.iterrows():
if i % 2 == 0:
df.at[i, 'a'] = row['a'] * 10
print(df)
Результат выполнения кода:
a b
0 10 10
1 2 20
2 30 30
3 4 40
4 50 50
Пример
Давайте создадим новую строку на основе данных из каждой строки таблицы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
res = []
for idx, row in df.iterrows():
res.append(row['a'] + row['b'])
df['sum'] = res
print(df)
Результат выполнения кода:
a b sum
0 1 10 11
1 2 20 22
2 3 30 33
3 4 40 44
4 5 50 55
Смотрите также
-
метод
itertuples,
который возвращает итератор с именованными кортежами -
метод
items,
который перебирает столбцы таблицы -
метод
apply,
который применяет функцию к строкам или столбцам -
метод
DataFrame,
класс для создания и работы с таблицами