Доступ по индексу в DataFrame

Мы уже рассказывали о структуре DataFrame в Pandas -- высокоуровневой Python-библиотеке для анализа данных. Но как осуществляется доступ по индексу в DataFrame?

На самом деле, индекс по строкам мы можем задавать различными способами, к примеру, в процессе формирования самого объекта DataFrame либо, как говорится "на лету":

Таким образом, мы видим, что индексу задается имя Country Code. Также стоит отметить, что объекты Series из DataFrame приобретут те же самые индексы, что и объект DataFrame:

При этом доступ к строкам по индексу можно осуществить 2-мя способами:

  • .loc -- для доступа по строковой метке;
  • .iloc -- для доступа по числовому значению (от 0 и выше).

Идем дальше. У нас есть возможность выполнять выборку по индексу и интересующим колонкам:

Обратите внимание, что .loc в квадратных скобках принимает два аргумента. Кроме интересующего индекса, поддерживаются колонки и слайсинг.

Следующий момент -- у нас есть возможность фильтровать DataFrame, используя для этого булевы массивы:

Кроме того, существует возможность обращения к столбцам -- для этого применяется атрибут либо нотация словарей Python, то есть df.population и df['population'] -- это, по сути, одно и то же.

Если надо сбросить индексы, сделать это можно следующим образом:

Также Pandas при операциях над DataFrame осуществляет возвращение нового объекта DataFrame.

Давайте выполним добавление нового столбца, где население, исчисляемое в миллионах человек, мы поделим на площадь государства, тем самым получив плотность:

Теперь представим, что новый столбец нас чем-то не устраивает. Не беда -- его можно без проблем удалить:

Ну а если вы очень ленивы, то достаточно написать del df['density'].

Для переименования столбцов воспользуемся методом rename:

В вышеприведенном примере перед переименованием столбца Country Code следует сначала удостовериться, что с него сброшен индекс. В обратном случае никакого эффекта не будет.

По материалам блога https://khashtamov.com/ru/.