Python groupby

искусственный интеллект

Основная функция функции groupby в питоне — группировать данные и выполнять внутригрупповые операции после группировки!

Сгенерированный объект DataFrameGroupBy, после выполнения групповых данных, результат, возвращаемый ipython, является его адресом в памяти, что не способствует интуитивному пониманию. DataFrameGroupBy можно преобразовать в другие типы.

Процесс groupby заключается в разделении исходного DataFrame на несколько сгруппированных DataFrames в соответствии с полями groupby, и существует столько сгруппированных DataFrames, сколько есть групп.

1. Функция после groupby

1.1describe()

Базовая статистика, описывающая данные внутри группы

распаковать() перестановка индекса

1.2agg операция агрегирования:

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

Функция Назначение мин минимальное значение максимальное максимальное значение суммирование суммы среднее среднее медиана медиана стандартное стандартное отклонение переменная дисперсия считать считать

as_index = Ложь Сохранить исходный результат индекса данных без изменений

первый() сохранить первые данные

Хвост(n=1) сохранить последние n данных

1.3transform

image.png

Разница между transform и agg заключается в том, что для agg средние значения, соответствующие компаниям A, B и C, будут рассчитываться и возвращаться напрямую, а для transform соответствующие результаты будут получены для каждого фрагмента данных. в группе будет иметь такое же значение.После расчета среднего значения в группе результаты будут возвращены в порядке исходного индекса.Если вы не понимаете, вы можете сравнить эту картинку с agg.

1.4 apply

  1. применять и трансформировать

Во-первых, давайте поговорим о сходствах и различиях между apply() и transform().

Тот же пункт:

Оба вычисления признаков могут быть выполнены в кадре данных и часто используются с методом groupby().

разница:

За Apply() могут следовать пользовательские функции, включая простые функции суммирования и сложные функции разности между функциями и т. д. (Примечание: apply не может напрямую использовать встроенные функции python в методе agg()/transform(), такие как sum , max , мин, «количество» и т. д.)

Transform() не может взаимодействовать с пользовательскими функциями признаков, потому что преобразование вычисляется для каждого элемента (т. е. каждого столбца операций с признаками), то есть при использовании метода преобразования() необходимо помнить три момента:

1. Он может выполнять вычисления только для каждого столбца, поэтому после groupby() перед .transform() вам нужно указать столбец, над которым нужно работать, что также сильно отличается от применения.

2. Поскольку он может быть рассчитан только для каждого столбца, универсальность метода намного более ограничена, чем у apply().Например, можно рассчитать только максимум/минимум/среднее/дисперсию/бинирование столбцов.

3. Какая польза от преобразования Простейший случай — это попытка присвоить результат функции обратно исходному фрейму данных. То есть возвращаемая форма (len(df), 1). Примечание. Если используется в сочетании с методом groupby(), значение необходимо дедуплицировать.