Agrupando e agregando com pandas
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.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva