4 dicas para aproveitar ao máximo a função de Pandas Groupby

Impulsione seu processo de análise de dados exploratórios

Pandas é uma biblioteca de análise e manipulação de dados altamente popular. Ele fornece inúmeras funções para realizar uma análise eficiente de dados. Além disso, sua sintaxe é simples e fácil de entender.

groupby

Neste artigo, focamos em uma função particular dos Pandas, o groupby. É usado para agrupar os pontos de dados (ou seja, linhas) com base nas categorias ou valores distintos em uma coluna.

calcular estatísticas

Podemos então calcular uma estatística ou aplicar uma função em uma coluna numérica em relação às categorias agrupadas.

import numpy as np
import pandas as pd
df = pd.read_csv("/content/melb_data.csv", 
usecols = ['Price','Landsize','Distance','Type', 'Regionname'])
df = df[(df.Price < 3_000_000) & (df.Landsize < 1200)].sample(n=1000).reset_index(drop=True)df.head()

filtro e amostragem

Logo em seguido foi aplicado um filtro em relação ao preco e tamanho do terreno, finalmente, extraída uma amostra aleatória de 1000 observações (ou seja, linhas) é selecionada usando a função amostral.

df[['Type','Distance']].groupby('Type').mean()

1. personalizar os nomes das colunas

A função groupby não altera ou personaliza os nomes das colunas, por isso não sabemos realmente o que os valores agregados representam. Por exemplo, no exemplo anterior, seria mais informativo alterar o nome da coluna de “distance” para “avg_distance”.

df[['Type','Distance']].groupby('Type').agg(
avg_distance = ('Distance', 'mean')
)

personalizar nomes para múltiplas colunas

Personalizar os nomes das colunas torna-se mais importante se agregarmos várias colunas ou aplicarmos funções diferentes a uma coluna. A função agg aceita múltiplas agregações. Só precisamos especificar o nome da coluna e a função.

df[['Type','Distance']].groupby('Type').agg(
avg_distance = ('Distance', 'mean'),
median_distance = ('Distance', 'median')
)

2. expressões lambda

A expressão lambda é uma forma especial de funções em Python. Em geral, expressões lambda são usadas sem um nome, anônimas, por isso não as definimos com a palavra-chave def como funções normais.

.agg( ) aceita lambda

A função agg aceita expressões lambda. Assim, podemos realizar cálculos e transformações mais complexos junto com a função grupada.

df[['Type','Price']].groupby('Type').agg(
avg_price_million = ('Price', lambda x: x.mean() / 1_000_000)
).round(2)

3. parâmetro as_index( )

As funções groupby atribuem os grupos ao índice do dataframe retornado. No caso de grupos aninhados, não parece agradável.

df[['Type','Regionname', 'Distance']].groupby(
['Type','Regionname']).mean().head()
df[['Type','Regionname', 'Distance']].groupby(
['Type','Regionname'], as_index=False).mean().head()

4. valores missing

A função groupby ignora os valores faltantes por padrão. Vamos primeiro atualizar alguns dos valores na coluna type como valores NaN.

df.iloc[100:150, 0] = np.nan
df[['Type','Distance']].groupby('Type').mean()
df[['Type','Distance']].groupby('Type', dropna=False).mean()

conclusão

As funções de groupby é uma das funções mais utilizadas no processo exploratório de análise de dados. Fornece uma visão valiosa das relações entre as variáveis.

obrigado.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store