Чтобы перебирать строки Pandas DataFrame, используйте функцию iterrows(), которая возвращает итератор, дающий данные индекса и строки для каждой строки.
В этом руководстве мы рассмотрим примеры, демонстрирующие, как перебирать строки DataFrame с помощью iterrows().
Синтаксис
Синтаксис функции:
DataFrame.iterrows(self)
- index – индекс строки в DataFrame. Это может быть метка для одного индекса или кортеж метки для мультииндекса.
- data (данные) – это данные строки в виде серии Pandas.
- it– это генератор, который выполняет итерацию по строкам DataFrame.
Пример 1
В этом примере мы инициализируем DataFrame с четырьмя строками и перебираем их, используя Python For Loop и функцию iterrows().
import pandas as pd
#create dataframe
df_marks = pd.DataFrame({
'name': ['apple', 'banana', 'orange', 'mango'],
'calories': [68, 74, 77, 78]})
#iterate through each row of dataframe
for index, row in df_marks.iterrows():
print(index, ': ', row['name'], 'has', row['calories'], 'calories.')
Во время каждой итерации мы можем получить доступ к индексу строки и ее содержимому.
Вывод:
0 : apple has 68 calories. 1 : banana has 74 calories. 2 : orange has 77 calories. 3 : mango has 78 calories.
Обратите внимание, что информация о калориях не соответствует действительности. Пример предназначен для демонстрации использования iterrows().
Пример 2
В предыдущем примере мы видели, что можем получить доступ к данным индекса и строки.
В этом примере мы исследуем тип данных строки, которые iterrows() возвращает во время итерации.
import pandas as pd
#create dataframe
df_marks = pd.DataFrame({
'name': ['apple', 'banana', 'orange', 'mango'],
'calories': [68, 74, 77, 78]})
#iterate through each row of dataframe
for index, row in df_marks.iterrows():
print(type(index), type(row))
Вывод:
<class 'int'> <class 'pandas.core.series.Series'> <class 'int'> <class 'pandas.core.series.Series'> <class 'int'> <class 'pandas.core.series.Series'> <class 'int'> <class 'pandas.core.series.Series'>
Мы не предоставили никакого индекса для DataFrame, поэтому индексом по умолчанию будут целые числа от нуля и увеличивающиеся на единицу. Итак, iterrows() вернул индекс, как целое число.
Заключение
В этом руководстве по Pandas мы использовали iterrows() для перебора строк DataFrame с помощью примеров программ.