Neste artigo, veremos o agrupamento e a agregação usando pandas. O agrupamento e a agregação ajudam a realizar a análise de dados facilmente usando várias funções. Esses métodos nos ajudarão ao grupo e resumirão nossos dados e tornarão análises complexas relativamente fáceis.  

Criação de um conjunto de dados de amostra de marcas de vários assuntos.

# import module
import pandas as pd
  
# Creating our dataset
df = pd.DataFrame([[9, 4, 8, 9],
                   [8, 10, 7, 6],
                   [7, 6, 8, 5]],
                  columns=['Maths',  'English', 
                           'Science', 'History'])
  
# display dataset
print(df)

Saída:

Agregação em pandas

A agregação no pandas fornece várias funções que realizam uma operação matemática ou lógica em nosso conjunto de dados e retorna um resumo dessa função. A agregação pode ser usada para obter um resumo das colunas em nosso conjunto de dados, como a obtenção de soma, mínimo, máximo, etc. de uma coluna específica de nosso conjunto de dados. A função usada para agregação é agg(), o parâmetro é a função que queremos executar.

Algumas funções usadas na agregação são:

Descrição da função:

  • sum(): Calcula a soma dos valores da coluna
  • min(): Calcula o mínimo dos valores da coluna
  • max(): Calcula o máximo dos valores da coluna
  • mean(): Calcular a média da coluna
  • size(): Calcular os tamanhos das colunas
  • describe(): Gera estatísticas descritivas
  • primeiro(): Calcula o primeiro dos valores do grupo
  • último(): Calcula o último dos valores do grupo
  • contagem(): calcula a contagem dos valores da coluna
  • std(): desvio padrão da coluna
  • var(): Calcula a variância da coluna
  • sem(): Erro padrão da média da coluna

Exemplos:

  • A função sum() é usada para calcular a soma de todos os valores.
df.sum()

Saída:

  • A função describe() é usada para obter um resumo do nosso conjunto de dados
df.describe()

Saída:

  • Usamos a função agg() para calcular a soma, mínimo e máximo de cada coluna em nosso conjunto de dados.
df.agg(['sum', 'min', 'max'])

Saída:

Agrupamento em pandas

O agrupamento é usado para agrupar dados usando alguns critérios de nosso conjunto de dados. É usado como estratégia dividir-aplicar-combinar.

  • Dividir os dados em grupos com base em alguns critérios.
  • Aplicar uma função a cada grupo de forma independente.
  • Combinando os resultados em uma estrutura de dados.

Exemplos:

Usamos a função groupby() para agrupar os dados no valor “Maths”. Ele retorna o objeto como resultado.

df.groupby(by=['Maths'])

Saída:

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000012581821388>

Aplicando a função groupby() para agrupar os dados no valor “Maths”. Para ver o resultado dos grupos formados, use a função first().

a = df.groupby('Maths')
a.first()

Saída:

Primeiro agrupamento com base em "Matemática" dentro de cada equipe que estamos agrupando com base em "Ciências" 

b = df.groupby(['Maths', 'Science'])
b.first()

Saída:

Implementação em um conjunto de dados

Aqui, estamos usando um conjunto de dados de informações do diamante .

# import module
import numpy as np
import pandas as pd
  
# reading csv file
dataset = pd.read_csv("diamonds.csv")
  
# printing first 5 rows
print(dataset.head(5))

Saída:

  • Agrupamos usando cut e obtemos a soma de todas as colunas.
dataset.groupby('cut').sum()

Saída:

  • Aqui estamos agrupando usando corte e cor e obtendo o valor mínimo para todos os outros grupos.
dataset.groupby(['cut', 'color']).agg('min')

Saída:

  • Aqui, estamos agrupando usando cores e obtendo valores agregados como soma, média, mínimo, etc. para o grupo de preços.
# dictionary having key as group name of price and
# value as list of aggregation function 
# we want to perform on group price
agg_functions = {
    'price':
    ['sum', 'mean', 'median', 'min', 'max', 'prod']
}
  
dataset.groupby(['color']).agg(agg_functions)

Saída:

Podemos ver que na coluna prod (produto, ou seja, multiplicação) todos os valores são inf, inf é o resultado de um cálculo numérico que é matematicamente infinito.

 Atenção geek! Fortaleça suas bases com o Python Programming Foundation Course e aprenda o básico.