Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
2983

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

Одной из распространенных задач при работе с библиотекой Pandas в Python является итерация по строкам DataFrame. DataFrame – это двухмерная структура данных, представляющая

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Одной из распространенных задач при работе с библиотекой Pandas в Python является итерация по строкам DataFrame. DataFrame – это двухмерная структура данных, представляющая собой таблицу, каждая строка которой содержит одну и ту же информацию по различным характеристикам (например, возраст, имя, пол и т.д.).

Рассмотрим пример. Есть DataFrame с именем df:

   c1   c2
0  10  100
1  11  110
2  12  120

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

for row in df.rows:
    print(row['c1'], row['c2'])

Однако, в Pandas нет метода .rows, и это вызовет ошибку. Но существуют другие методы, которые позволяют решить эту задачу.

Один из подходов – использовать метод .iterrows(). Этот метод возвращает итератор, который генерирует индекс каждой строки и данные этой строки в виде объекта Series.

for index, row in df.iterrows():
    print(row['c1'], row['c2'])

В этом примере index будет индексом строки, а row – объектом Series, который содержит данные строки. Обращение к значениям ячеек осуществляется по имени столбца (в данном случае ‘c1’ и ‘c2’).

Есть и другой подход – это использовать метод .itertuples(). Этот метод возвращает итератор, который генерирует именованный кортеж с индексом строки и данными.

for row in df.itertuples():
    print(row.c1, row.c2)

В этом случае row будет именованным кортежем, и обращение к значениям ячеек осуществляется через атрибуты именованного кортежа, которые соответствуют именам столбцов.

Оба этих метода позволяют итерироваться по строкам DataFrame, но важно помнить, что они не предназначены для изменения данных. Если есть необходимость изменить данные в процессе итерации, то лучше использовать другие подходы, например, векторизованные операции.

Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

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