Pandas

Используемый набор данных

Мы будем использовать знаменитый набор данных Titanic. Импортируем его и получаем следующее:

1. idxmin() and idxmax()

Эти функции возвращают индексную позицию определенной записи. В наборе данных Titanic, например, можно найти индексную позицию самого молодого/старого человека. Попробуем найти только имена этих людей.

Многие программисты используют следующий подход, поскольку не знают о существовании idxmin() и idxmax():

Не самый чистый код, но бывает и хуже. Теперь рассмотрим, как добиться подобного результата с помощью выше упомянутых функций:

Результаты идентичны, но код стал немного короче и чище.

2. cut()

cut() используется, чтобы поместить значения в дискретные интервалы. Например, в наборе данных Titanic есть атрибут Age, который является непрерывным. Допустим, вы хотите рассчитать соотношение выживших/погибших для определенной возрастной группы.

Идея состоит в том, чтобы разделить столбец Age на 5 сегментов:

Предпочитаете обходиться без маркировок? Не проблема:

Или вы просто хотите получить простое целочисленное представление:

Какой бы вариант вы ни выбрали, вы можете назначить все выражение новому столбцу в DataFrame и продолжить анализ.

3. pivot_table()

Эта функция создает сводную таблицу в стиле электронных таблиц как DataFrame.

Допустим, вы хотите узнать среднюю выживаемость среди мужчин в третьем классе. Вы можете использовать Pandas по умолчанию и возможности фильтрации для получения этой информации:

Но что, если нужно найти среднюю выживаемость для мужчин и женщин во всех трех пассажирских классах? Сводные таблицы спешат на помощь. Установите индекс на Sex, столбцы на Pclass (пассажирский класс) и значения на Survived, а затем используйте любую функцию агрегирования:

Это было легко. Также стоит отметить, что вы можете добавить дополнительную строку для общих итогов:

Заключение

Каждый раз, когда вам кажется, что написанный код длиннее, чем должен быть, постарайтесь найти более короткий путь. Скорее всего, уже существует функция, способная выполнить то, что вам нужно, просто осталось ее найти.

Читайте также:


Перевод статьи Dario Radečić: 3 Pandas Functions You Should Be Using More Often

Предыдущая статьяНастройка Swagger документации для API в Golang
Следующая статьяПривычки, которые стоит выработать программисту