Найти тему
Властелин машин

Основные агрегирующие функции в Pandas

Рассмотрим основных агрегирующие функции в Pandas. В качестве демонстрационного датафрейма используем следующий:

Сходство некоторых функций порождает непонимание и неверное их использование, например, часто для подсчета доли пустых
ячеек используется такая форма - df['revenue'].isna().sum()/df['revenue'].count(). Однако это является неправильным, так как count подсчитывает количество ненулевых значений, а не их общее число. В то же время долю можно получить функцией
mean:

-2

Вот список самых распространенных функций:

count - количество заполненных значений
len - общее количество значений (включая пустые)
size - общее количество значений (применяется странно)
nunique - количество уникальных значений
min - минимум
max - максимум
std - стандартное отклонение
sum - сумма
mean - среднее
median - медиана
var - дисперсия
quantile - квантиль

О том, как использовать собственные функции, писал ранее.

Применение той или иной функции зависит от типа столбца, так как среднее между строками не понятно как считать, а количество уникальных значений - без проблем.

Распространенным "костылем" является попытка подсчитать количество значений в группе по некому дополнительному столбцу с помощью count, хотя это приведет к неправильному результату, если в нем есть пропуски. Правильным решением является группировка и вывод метода size без использования лишних столбцов, сравните:

-3

Остановимся на особенностях size. В методе groupby size и len (обратите внимание, что len вызываем по ссылке) выводят одинаковый результат для выделенного или нескольких столбцов:

-4

В методе pivot_table, чтобы size заработала, надо в values передавать список:

-5

-6

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

-7
-8

Наука
7 млн интересуются