Как перебирать строки в DataFrame Pandas

Pandas iterrows — это встроенная функция DataFrame, которая поможет вам просмотреть каждую строку.

Что такое функция Pandas iterrows()?

Функция Pandas iterrows() используется для перебора строк фрейма данных Pandas. Метод Pandas iterrows() возвращает итератор, содержащий индекс каждой строки и данные в каждой строке в виде серии. Поскольку iterrows() возвращает итератор, мы можем использовать следующую функцию, чтобы увидеть содержимое итератора.

В дополнение к iterrows в Pandas также есть полезная функция itertuples(). Функция iterrows() используется для перебора строк DataFrame в виде пар (индекс, серия). Функция перебирает столбцы DataFrame, возвращая кортеж с именем столбца и содержимым в виде серии.

Синтаксис

Yields

  • index: метка или кортеж метки

Индекс строки. Кортеж для MultiIndex.

  • data: Series

Данные строки как Series.

  • it: generator

Это генератор, который перебирает строки кадра.

Шаги для перебора строк в DataFrame Pandas

Шаг 1: Создайте DataFrame

Давайте создадим DataFrame из данных JSON. Во-первых, нам нужно преобразовать JSON в Dict с помощью функции json.loads(). Затем мы конвертируем Dict в DataFrame, используя функцию DataFrame.from_dict().

См. следующий код.

Выход:

Итак, мы создали DataFrame.

Шаг 2: Итерация строк DataFrame с помощью Pandas iterrows()

См. следующий код.

Выход:

Поскольку данные строки возвращаются в виде серии, мы можем использовать имена столбцов для доступа к значению каждого столбца в строке. Здесь мы перебираем каждую строку и назначаем индекс строки, данные строки переменным с именем index и row. Затем мы получаем доступ к данным строки, используя имена столбцов DataFrame.

Поскольку функция Pandas iterrows() возвращает серию для каждой строки, она не сохраняет dtypes в строках. Вы никогда не должны изменять то, что вы повторяете.

Итерация по объектам pandas очень медленная. Во многих случаях перебор строк вручную не требуется. Чтобы сохранить dtypes при переборе строк, лучше использовать itertuples(), которая возвращает именованные кортежи значений и обычно работает быстрее, чем iterrows().

Pandas iterrows() и next()

Функция Pandas iterrows() возвращает итератор, и мы можем использовать функцию next() для просмотра содержимого итератора. Мы видим, что метод iterrows() возвращает кортеж с индексом строки и данными строки в виде объекта Series.

Выход:

Мы можем пройтись по Pandas DataFrame и легко получить доступ к индексу и содержимому каждой строки.

Как перебирать строки DataFrame с помощью itertuples()

Pandas itertuples() — это встроенная функция DataFrame, которая перебирает строки DataFrame как namedtuples. Это лучший способ итерации/цикла по строкам DataFrame — использовать функцию Pandas itertuples().

Согласно названию itertuples(),  она перебирает строки фрейма данных и возвращает именованный кортеж.

См. следующий код.

Выход:

Первый элемент кортежа — это индекс строки, а остальные значения кортежа — это данные в строке. В отличие от функции Pandas iterrows(), данные строки не хранятся в серии.

Из вывода видно, что метод itertuples() DataFrame возвращает содержимое строки в виде именованного кортежа с соответствующими именами столбцов. Поэтому мы можем просто получить доступ к данным с именами столбцов и Index.

См. следующий код.

Выход:

Заключение

Функция Pandas Iterrows()

Чтобы перебирать строки в Pandas DataFrame, мы можем использовать Pandas DataFrame iterrows() и Pandas DataFrame itertuples().

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python