Pandas Groupby Average

Pandas Groupby Average



Quando somamos dois ou mais valores e sua soma é dividida pelo número total de valores somados, o resultado é uma média. Pandas Mean retorna a média dos dados ou do valor ao longo de um determinado eixo. Uma série com a média em um eixo será retornada por pandas se o método mean() for aplicado a um dataframe. Pandas retornam um valor numérico (número único) se “mean()” for usado em uma série. As funções podem ser aplicadas às categorias após a criação dos grupos de categorias. É uma ideia simples, mas uma técnica altamente eficaz que é frequentemente aplicada em ciência de dados. Ele nos permite criar um resumo dos dados para cada grupo, aplicar modificações específicas do grupo e realizar filtragem de dados. Com a função groupby(), o objeto pode ser dividido, uma função pode ser aplicada e os produtos podem ser combinados. Grandes conjuntos de dados podem ser agrupados com isso e as operações podem ser executadas nos grupos.

Como usar o método groupby.mean() em Pandas?

Para calcular a média de um dataframe ou a média de colunas específicas de um dataframe, podemos usar a função groupby.mean(). Vamos demonstrar como usá-lo nos exemplos a seguir.







Exemplo # 01: Determinar a média de uma única coluna inteira agrupando os dados de uma única coluna

Usando a função pd.DataFrame(), primeiro criaremos um dataframe para que possamos dividir os dados da coluna ou colunas do dataframe em grupos e depois encontrar seu valor médio. Antes de criar o data frame, devemos importar o módulo pandas junto com a biblioteca numpy.





Como pode ser visto, criamos nosso dataframe usando o dicionário pandas. Temos 3 colunas em nosso dataframe df, ou seja, 'itens', 'fabricante' e 'quantidade'. Na coluna 'itens', armazenamos os valores ('camisa', 'gravata', 'calça', 'camisa', 'gravata', 'calça', 'camisa', 'calça', 'calça', ' tie'), enquanto as colunas 'fabricante' e 'quantidade' contêm os valores ('italy', 'france', 'china', 'france',  'china', 'italy', 'china', 'italy', 'france', 'china') e (13, 16, 21, 32, 26, 41, 24, 42, 12, 15), respectivamente. Vamos agrupar os valores na coluna do fabricante e determinar o valor da quantidade média para cada fabricante distinto.





O valor do fabricante 'china' tem um valor médio de quantidade de 21,5, o valor médio de quantidade para 'france' é 20,0 e o valor médio de quantidade para 'Itália' é 32,0. Também podemos especificar um índice para a saída usando a função reset_index com a função groupby.mean().



Exemplo # 02: Encontre a média de uma única coluna flutuante agrupando os dados de uma única coluna

Vimos como podemos encontrar a média da coluna inteira depois de agrupar os dados. Agora vamos tentar outra coluna de tipo de dados como float. Um dataframe com pelo menos uma coluna com valores float será criado usando a função pd.DataFrame().

Colocando um dicionário dentro do pd.DataFrame(), criamos um dataframe com três colunas. A coluna 'nome' está armazenando os nomes de alguns jogadores aleatórios ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), a coluna 'time' representando o time do qual cada jogador pertence ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B ', 'C', 'C'), e a coluna 'height' armazena as alturas de cada jogador como um valor flutuante (5,6, 5,4, 6,3, 5,2, 5,5, 6,4, 5,6, 5,8, 6,0, 5,2). Vamos agrupar os dados na coluna 'equipe' e determinar o valor médio da altura para cada valor distinto de 'equipe'.

Você pode ver que o valor médio da altura dos jogadores da equipe A é 5,65, enquanto as alturas médias dos jogadores das equipes B e C são 5,866 e 5,6, respectivamente.

Exemplo # 03: Determine a média de várias colunas usando a função groupby.mean()

Nos exemplos anteriores, determinamos a média de uma única coluna. No entanto, a média de várias colunas para cada grupo também pode ser determinada. Vamos criar um dataframe com mais de uma coluna numérica, após importar os módulos pandas e numpy.

No dataframe recém-criado, existem três colunas com os rótulos 'nome', 'pontuação' e 'correspondências'. Os nomes das colunas com os valores de dados como uma string ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), enquanto o 'pontuação' e 'partidas' consistem em dados numéricos como (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) e (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Agora vamos encontrar a média da coluna ‘score’ e ‘matches’ após agrupar os dados da coluna ‘name’. A função groupby.mean() será usada para isso.

Pode-se notar que o grupo ‘Dany’ tem pontuação média de 2,66 em 2,00 partidas. O grupo Jim tem uma pontuação média de 2,75 e o valor médio dos jogos disputados é de 1,75. Enquanto o grupo ‘Ron’ tem um valor médio de pontuação de 2,66 e o ​​valor médio de partidas disputadas é de 2,33.

A média de um grupo de categorias pelo objeto também pode ser calculada usando o método agg(). Forneceremos a média como um argumento para a função agg(). Para agregar usando uma ou várias operações em um determinado eixo, podemos usar a função agg().

A saída é a mesma de antes.

Exemplo # 04: Determinar a média de colunas específicas agrupando as várias colunas

Nos exemplos 1, 2 e 3, agrupamos os valores ou dados de uma única coluna. Agora agruparemos várias colunas usando a lista de rótulos de coluna dentro da função groupby() e, em seguida, encontraremos o valor médio para cada grupo. Um dicionário 'd' será passado dentro da função pd.Dataframe() como uma entrada para criar o dataframe.

Criamos o dataframe necessário. A coluna 'esportes' está armazenando o nome de alguns esportes ('Badminton', 'futebol', 'tênis', 'basquete', 'futebol', 'tênis', 'basquete', 'futebol', 'Badminton', ' basquete', 'basquetebol', 'tênis'), os nomes dos países ('China', 'Rússia', 'Itália', 'Espanha', 'Rússia', 'Itália', 'China', 'Itália', ' Espanha', 'China', 'Rússia', 'Itália') são armazenados na coluna 'país'. Enquanto na coluna ‘vitória’, armazenamos o número de partidas vencidas por cada país em cada esporte (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Vamos usar a função groupby.mean() para encontrar a média dos valores da coluna ‘win’ agrupando as colunas ‘sports’ e ‘country’.

A função determinou com sucesso as médias dos valores da coluna 'ganhar' para cada esporte no país. O dataframe agrupado por pode ser redefinido usando a função reset_index(), que também gera um novo índice, dando a ele uma estrutura de dataframe apropriada.

Um índice é adicionado para a linha de cada dataframe. Para organizar os resultados em uma tabela atraente, também podemos usar a função pivot().

Conclusão

Neste tutorial, discutimos o que é a média ou média dos números e como encontrar a média de uma coluna específica (uma ou mais) após agrupar a coluna ou colunas de um dataframe. Implementamos alguns exemplos neste artigo para ensiná-lo a determinar a média de uma única coluna inteira ou flutuante agrupando os dados de uma única coluna; como determinar a média de várias colunas usando a função groupby.mean(); e também como determinar a média de colunas específicas agrupando as várias colunas.