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

Выбор строки в pandas series/dataframe по целочисленному индексу

Часто при работе с библиотекой pandas, которая широко используется для обработки данных в Python, возникает необходимость выбрать определенную строку из

Часто при работе с библиотекой pandas, которая широко используется для обработки данных в Python, возникает необходимость выбрать определенную строку из серии или dataframe по указанному индексу. Казалось бы, логично использовать обычный синтаксис Python для доступа к элементам списка или массива по индексу, например, df[2]. Однако при попытке выполнить такую операцию, часто можно столкнуться с ошибкой.

При этом, другие способы доступа к строкам, такие как df.ix[2] или df[2:3], работают без проблем. Это может вызвать некоторое недоумение и вопросы о причинах такого поведения pandas.

Почему df[2] не работает?

В pandas существуют некоторые особенности индексации, которые отличаются от стандартного поведения Python. Одна из таких особенностей — это то, что df[2] пытается выбрать данные по метке, а не по целочисленному индексу.

Если в dataframe используются целочисленные метки, то df[2] будет работать, но выберет не строку с индексом 2, а строку с меткой 2. Если же метки не являются числами или нет метки 2, то будет выдана ошибка.

Как правильно выбрать строку по индексу?

Вместо использования df[2], в pandas предлагается использовать функции .loc[] или .iloc[] для выбора данных по метке или по позиции соответственно.

Функция .iloc[] работает аналогично обычной индексации в Python, то есть df.iloc[2] выберет третью строку в dataframe независимо от её метки.

df.iloc[2]

Функция .loc[], в свою очередь, используется для доступа по метке, то есть df.loc[2] выберет строку с меткой 2.

df.loc[2]

Заключение

В pandas используются некоторые нестандартные способы индексации, которые могут вводить в заблуждение. Однако зная об этих особенностях и используя функции .loc[] и .iloc[], можно легко выбирать нужные строки по метке или по позиции.

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