Pandas Groupby Index

Pandas Groupby Index
Para dividir os dados em grupos, podemos usar os dados do quadro de dados de pandas.função do grupo (). Podemos dividir os objetos de pandas em grupos de dados ao longo de um eixo. A definição formal de agrupamento é um mapeamento de rótulo para nomes. Um objeto é dividido, uma função é aplicada e as saídas são combinadas em uma operação de grupo. Este é um método útil para executar as operações e agregar as enormes quantidades de dados. O grupo Pandasby remove as colunas do grupo da lista de colunas do quadro de dados e as converte em índices por padrão. Neste artigo, demonstraremos como agrupar os dados com base no índice ou multi-índice do DataFrame em pandas e como executar as diferentes operações no índice depois de agrupá-las.

Como usar o Índice Groupby em pandas

Vamos dar uma olhada na sintaxe da função groupby () antes de aplicá -la ao índice do quadro de dados.

Sintaxe:

Quadro de dados.grupo (por = nenhum, eixo = 0, nível = nenhum, as_index = true, sort = true, group_keys = true)

Onde;

por: Uma string, uma função, um iterável ou um mapeamento.

eixo: Int, zero por padrão.

nível: Agrupando os dados do eixo de índice de vários níveis por um determinado nível ou níveis hierárquicos.

as_index: Isso se aplica apenas à entrada de dados de dados. Se index = false, a saída é agrupada em "estilo SQL".

organizar: Um grupo de chaves deve ser classificado. Desligue isso para aumentar o desempenho. Isso não deve ter impacto na ordem ou na sequência de observações em qualquer grupo. As linhas dentro de cada grupo são mantidas na ordem mantida pelo grupo.

group_keys: Quando a chamada se aplicar, adicione as teclas dos grupos ao índice para identificar o aperto das peças: reduza a dimensionalidade do tipo de retorno, se puder; Caso contrário, retorne um tipo constante.

Agora, você pode fazer os cálculos durante o agrupamento pelas colunas de índice único ou múltiplo usando os métodos listados no seguinte:

Exemplo 1: Encontrando o valor máximo da coluna agrupando a coluna do índice

Primeiro, criamos um DataFrame usando o PD.Função DataFrame () para que possamos agrupar os dados do índice do DataFrame e determinar seu valor máximo para uma coluna específica do DataFrame. Nós importamos a biblioteca de pandas antes de criarmos o DataFrame.

Criamos um DataFrame composto por três colunas: "Team_id", "Country" e "Score". Os valores de dados ("001", "002", "001", "001", "003", "003", "002", "001", "002", "003"), ("Espanha", "Brasil", "Brasil", "Alemanha", "Brasil", "Espanha", "Alemanha", "Espanha", "Alemanha", "Espanha") e (6, 10, 6, 5, 8, 5 , 8, 9, 5, 8) são armazenados nas colunas "Team_id", "Country" e "Score", respectivamente. Como pode ser notado, existe um índice inteiro que é um índice por padrão criado pelo construtor de pandas. Podemos especificar a coluna ou colunas do DataFrame como o índice do DataFrame usando a função set_index ().

A coluna "Team_id" agora é convertida em um índice. Vamos agrupar o índice usando a função groupby () e encontrar o valor máximo para cada grupo com a ajuda da função max ().

Ao especificar o rótulo da coluna do índice dentro da função groupby () como uma string, convertemos os dados em três grupos: 001, 002 e 003. Em seguida, a função max () é aplicada à coluna "pontuação" para encontrar o valor máximo para cada grupo. Para o valor do grupo "001", o valor máximo na coluna "pontuação" é 9. Então, 10 é o valor máximo para os dados do grupo 002 e 8 é o valor máximo para os dados do grupo 003.

Exemplo 2: Encontre a soma dos valores da coluna agrupando as colunas multiindex

No exemplo anterior, convertemos uma única coluna do DataFrame como um índice do DataFrame. Agora, definimos as múltiplas colunas de quadro de dados como os índices de quadro de dados.

No recém -criado DataFrame, temos quatro colunas com rótulos "Grupo", "Team_id", "Name" e "Age". Na coluna "Grupo", temos os valores de dados ("x", "x", "x", "x", "x", "y", "y", "y", "y", " Y ”). O "Team_id" armazena os valores ("001", "002", "001", "001", "003", "003", "002", "001", "002", "003"). Enquanto as colunas "nome" e "idade" consistem em valores de dados ("Riz", "Bran", "Kim", "William", "Hardy", "Sam", "Ryan", "Lana", "Jenny" , “Clay”) e (21, 25, 19, 17, 22, 27, 25, 18, 29, 21), respectivamente. Vamos definir as colunas do grupo e Team_ID como índices de quadro de dados.

A lista dos rótulos da coluna ["Grupo", "Team_id"] é passado dentro da função set_index (). Agora, o grupo de colunas e o Team_id atuam como o índice de vários níveis. Vamos converter os dados do índice em grupos e determinar a soma dos valores na coluna "idade" para cada grupo.

A função determina com sucesso a soma dos valores da coluna "idade" para cada grupo de índices de vários níveis.

Exemplo 3: encontre o número de valores exclusivos agrupando uma coluna de índice e uma coluna regular do DataFrame

Vimos como agrupar a coluna do índice ou várias colunas de índice do DataFrame. Agora, agrupamos as colunas do índice e do quadro de dados regulares para encontrar o número de valores exclusivos em uma coluna específica. Para o PD.Função DataFrame (), para gerar o DataFrame, um dicionário é passado como uma entrada.

Um DataFrame é criado. Criamos quatro colunas em nosso quadro de dados. A coluna "Seção" possui valores de string ("vermelho", "vermelho", "vermelho", "vermelho", "vermelho", "azul", "azul", "azul", "azul", "azul"). A coluna "Student" armazena os nomes dos alunos como String ("Frey", "Kelly", "Peter", "Tyson", "Jhon", "Sansa", "Cloe", "Randy", "Lance", " Diaz ”). A coluna "Assuntos" possui valores de string como o nome dos sujeitos ("C ++", "C ++", "Java", "Python", "Python", "C ++", "C#", "C#", "R", "JS"). E a coluna “posição” tem valores inteiros (3, 1, 3, 2, 1, 5, 4, 6, 4, 7).

Como a coluna "seção" é definida como um índice de dados, vamos agrupar nossas colunas usando a função groupby ().

Passamos uma lista de rótulos da coluna (uma etiqueta de coluna de índice e uma etiqueta de coluna regular) como um argumento dentro da função Groupby () para criar os grupos. A função Nunique () é aplicada à coluna "sujeito" para contar os valores distintos para cada grupo.

Exemplo 4: Encontre a média de várias colunas agrupando várias colunas de índice do DataFrame

Aplicamos as diferentes funções a uma coluna específica do quadro de dados nos exemplos anteriores. Agora, aplicamos as diferentes funções em várias colunas depois de agrupar a coluna do índice. Criamos uma amostra de quadro de dados como pode ser visto no seguinte:

Primeiro, definimos a coluna da seção como a coluna de índice.

Agora, vamos agrupar os dados da coluna do índice e determinar o valor médio e o valor da soma das colunas "Test1" e "Test2", respectivamente.

Usamos a função agg () e passamos um dicionário com nomes de colunas como chaves e funções/ operações como valores para aplicar as diferentes funções nas colunas "test1" e "test2". A média da coluna "test1" é 7.2 e a soma da coluna “Test2” valores é 35 para o grupo A. Para o Grupo B, a média da coluna “Test1” valores é 6.6 e a soma dos valores da coluna “Test2” é 31.

Conclusão

Neste tutorial, discutimos como usar a função groupby () com a coluna de índice do DataFrame em pandas. Primeiro, discutimos a sintaxe da função Groupby () para entender seus parâmetros e funcionalidade. Praticamente implementamos os múltiplos exemplos deste artigo para ensinar como desempenhar as diferentes funções em uma coluna específica ou várias colunas de um quadro de dados agrupando a coluna do índice ou colunas de índice multinível.