O método groupby() é uma função da biblioteca Pandas do Python que permite agrupar dados em um DataFrame com base em uma ou mais colunas, aplicar uma função de agregação (como soma, média, contagem, etc.) a cada grupo e, em seguida, retornar os resultados em um novo DataFrame.

O método groupby() pode ser utilizado de diversas maneiras para manipular e analisar dados em um DataFrame. Vamos ver alguns exemplos abaixo:

Agrupando dados com base em uma coluna

Suponha que temos um DataFrame com informações sobre vendas de produtos em diferentes lojas, e queremos agrupar os dados com base na coluna "Loja". Podemos fazer isso da seguinte forma:

df_grouped = df.groupby("Loja")

Aplicando uma função de agregação

Uma vez que agrupamos os dados com base na coluna "Loja", podemos aplicar uma função de agregação para obter informações sobre as vendas em cada loja. Por exemplo, podemos querer saber a soma das vendas em cada loja. Podemos fazer isso da seguinte forma:

df_grouped = df.groupby("Loja")
df_sum = df_grouped["Vendas"].sum()

Neste exemplo, o método groupby() foi utilizado para agrupar os dados com base na coluna "Loja". Em seguida, a função de agregação sum() foi aplicada à coluna "Vendas" de cada grupo. O resultado é uma nova série contendo a soma das vendas em cada loja.

Agrupando dados com base em múltiplas colunas

Também é possível agrupar dados com base em múltiplas colunas. Por exemplo, suponha que queremos agrupar os dados por "Loja" e "Produto", para obter informações sobre as vendas de cada produto em cada loja. Podemos fazer isso da seguinte forma:

df_grouped = df.groupby(["Loja", "Produto"])
df_sum = df_grouped["Vendas"].sum()

Neste exemplo, o método groupby() foi utilizado para agrupar os dados com base nas colunas "Loja" e "Produto". A função de agregação sum() foi aplicada à coluna "Vendas" de cada grupo, resultando em uma nova série contendo a soma das vendas de cada produto em cada loja.

Aplicando múltiplas funções de agregação

Também é possível aplicar múltiplas funções de agregação a cada grupo. Por exemplo, suponha que queremos obter informações sobre as vendas totais, a média de vendas e o número de vendas em cada loja. Podemos fazer isso da seguinte forma:

df_grouped = df.groupby("Loja")
df_agg = df_grouped["Vendas"].agg(["sum", "mean", "count"])

Neste exemplo, o método **groupby()**foi utilizado para agrupar os dados com base na coluna "Loja". A função de agregação **agg()**foi aplicada à coluna "Vendas" de cada grupo, especificando as funções "sum", "mean" e "count" como argumentos. O resultado é um novo DataFrame contendo as informações solicitadas.

Aplicando uma função personalizada de agregação

Além das funções de agregação embutidas, também é possível aplicar uma função personalizada de agregação a cada grupo. Por exemplo, suponha que queremos calcular a diferença entre o valor máximo e o valor mínimo de vendas em cada loja. Podemos fazer isso da seguinte forma: