Итерация по строкам в DataFrame Pandas

Чтобы перебирать строки 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 с помощью примеров программ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *