РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
41 of 687 menu

Метод itertuples

Метод itertuples применяется к DataFrame и возвращает итератор, генерирующий именованные кортежи для каждой строки таблицы. В отличие от iterrows, этот метод работает быстрее и потребляет меньше памяти, поэтому рекомендуется к использованию при обходе строк.

Параметр index управляет включением индекса в кортеж (по умолчанию True). Параметр name позволяет задать имя для создаваемого именованного кортежа (по умолчанию 'Pandas').

Синтаксис

df.itertuples([index=True[, name='Pandas']])

Пример

Давайте пройдём по строкам таблицы и выведем каждую строку как кортеж:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) for row in df.itertuples(): print(row)

Результат выполнения кода:

Pandas(Index=0, a=1, b=10) Pandas(Index=1, a=2, b=20) Pandas(Index=2, a=3, b=30) Pandas(Index=3, a=4, b=40) Pandas(Index=4, a=5, b=50)

Пример

Теперь обратимся к отдельным полям кортежа по имени столбца или атрибуту Index:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) for row in df.itertuples(): print(f"Index: {row.Index}, a: {row.a}, b: {row.b}")

Результат выполнения кода:

"Index: 0, a: 1, b: 10" "Index: 1, a: 2, b: 20" "Index: 2, a: 3, b: 30" "Index: 3, a: 4, b: 40" "Index: 4, a: 5, b: 50"

Пример

Если индексы не нужны, их можно отключить с помощью index:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) for row in df.itertuples(index=False): print(row)

Результат выполнения кода:

Pandas(a=1, b=10) Pandas(a=2, b=20) Pandas(a=3, b=30) Pandas(a=4, b=40) Pandas(a=5, b=50)

Пример

Имя кортежа можно задать через параметр name для лучшей читаемости:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) for row in df.itertuples(name='RowData'): print(row)

Результат выполнения кода:

RowData(Index=0, a=1, b=10) RowData(Index=1, a=2, b=20) RowData(Index=2, a=3, b=30) RowData(Index=3, a=4, b=40) RowData(Index=4, a=5, b=50)

Пример

Метод можно использовать для фильтрации строк по условию:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = [row for row in df.itertuples() if row.a > 3] print(res)

Результат выполнения кода:

[Pandas(Index=3, a=4, b=40), Pandas(Index=4, a=5, b=50)]

Смотрите также

  • метод iterrows,
    который возвращает итератор из индекс-серии пар
  • метод items,
    который генерирует пары (индекс, серия) для столбцов
  • метод apply,
    который применяет функцию к строке или столбцу
  • метод map,
    который применяет функцию к элементам столбца
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить