pandas

Como usar o Group by no Pandas Python

Como usar o Group by no Pandas Python
O grupo Pandas por função é usado para agrupar objetos DataFrames ou colunas com base em condições ou regras particulares. Usando a função groupby, o gerenciamento do conjunto de dados é mais fácil. No entanto, todos os registros relacionados podem ser organizados em grupos. Usando a biblioteca Pandas, você pode implementar o grupo Pandas por função para agrupar os dados de acordo com diferentes tipos de variáveis. A maioria dos desenvolvedores usou três técnicas básicas para o grupo por função. Primeiro, a divisão em que os dados são divididos em grupos com base em algumas condições particulares. Em seguida, aplique certas funções a esses grupos. No final, combine a saída na forma de estrutura de dados.

Neste artigo, vamos percorrer os usos básicos de um grupo por função no python do panda. Todos os comandos são executados no editor Pycharm.

Vamos discutir o conceito principal do grupo com a ajuda dos dados do funcionário. Criamos um dataframe com alguns detalhes úteis dos funcionários (Employee_Names, Designation, Employee_city, Age).

Concatenação de String usando Grupo por Função

Usando a função groupby, você pode concatenar strings. Os mesmos registros podem ser unidos com ',' em uma única célula.

Exemplo

No exemplo a seguir, classificamos os dados com base na coluna 'Designação' dos funcionários e juntamos os Funcionários que têm a mesma designação. A função lambda é aplicada em 'Employees_Name'.

importar pandas como pd
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Designação") ['Employee_Names'].aplicar (lambda Employee_Names: ','.aderir (Employee_Names))
imprimir (df1)

Quando o código acima é executado, a seguinte saída é exibida:

Classificação de valores em ordem crescente

Use o objeto groupby em um dataframe regular chamando '.to_frame () 'e, em seguida, use reset_index () para reindexar. Classifique os valores da coluna chamando sort_values ​​().

Exemplo

Neste exemplo, classificaremos a idade do funcionário em ordem crescente. Usando o seguinte trecho de código, recuperamos 'Employee_Age' em ordem crescente com 'Employee_Names'.

importar pandas como pd
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Employee_Age'].soma().enquadrar().reset_index ().sort_values ​​(por = 'Employee_Age')
imprimir (df1)

Uso de agregados com groupby

Existem várias funções ou agregações disponíveis que você pode aplicar em grupos de dados, como contagem (), soma (), média (), mediana (), modo (), padrão (), min (), max ().

Exemplo

Neste exemplo, usamos uma função 'count ()' com groupby para contar os funcionários que pertencem à mesma 'Employee_city'.

importar pandas como pd
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city').contar()
imprimir (df1)

Como você pode ver a seguinte saída, nas colunas Designation, Employee_Names e Employee_Age, conte os números que pertencem à mesma cidade:

Visualize dados usando groupby

Usando o 'import matplotlib.pyplot ', você pode visualizar seus dados em gráficos.

Exemplo

Aqui, o exemplo a seguir visualiza 'Employee_Age' com 'Employee_Nmaes' do DataFrame fornecido usando a instrução groupby.

importar pandas como pd
importar matplotlib.pyplot como plt
dataframe = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
quadro de dados.groupby ('Employee_Names').soma().plot (kind = 'bar')
plt.mostrar()

Exemplo

Para plotar o gráfico empilhado usando groupby, gire 'stacked = true' e use o seguinte código:

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).Tamanho().desempilhar ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.mostrar()

No gráfico fornecido abaixo, o número de funcionários empilhados que pertencem à mesma cidade.

Altere o nome da coluna com o grupo por

Você também pode alterar o nome da coluna agregada com algum novo nome modificado da seguinte maneira:

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Designação'].soma().reset_index (name = 'Employee_Designation')
imprimir (df1)

No exemplo acima, o nome de 'Designação' é alterado para 'Employee_Designation'.

Recuperar Grupo por chave ou valor

Usando a instrução groupby, você pode recuperar registros ou valores semelhantes do dataframe.

Exemplo

No exemplo dado abaixo, temos dados de grupo com base em 'Designação'. Em seguida, o grupo 'Staff' é recuperado usando o .getgroup ('Equipe').

importar pandas como pd
importar matplotlib.pyplot como plt
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.groupby ('Designação')
imprimir (extract_value.get_group ('Equipe'))

O seguinte resultado é exibido na janela de saída:

Adicionar valor à lista do grupo

Dados semelhantes podem ser exibidos na forma de uma lista usando a instrução groupby. Primeiro, agrupe os dados com base em uma condição. Então, ao aplicar a função, você pode facilmente colocar este grupo nas listas.

Exemplo

Neste exemplo, inserimos registros semelhantes na lista de grupos. Todos os funcionários são divididos no grupo com base em 'Employee_city' e, em seguida, aplicando a função 'Lambda', este grupo é recuperado na forma de uma lista.

importar pandas como pd
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].aplicar (lambda série_grupo: série_grupo.listar()).reset_index ()
imprimir (df1)

Uso da função Transform com groupby

Os funcionários são agrupados de acordo com sua idade, esses valores somados, e usando a função 'transformar' uma nova coluna é adicionada à tabela:

importar pandas como pd
df = pd.Quadro de dados(
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Equipe', 'Diretor de TI', 'Diretor de TI', 'RH', 'Equipe', 'RH', 'Equipe', 'Líder de equipe'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformar ('soma')
imprimir (df)

Conclusão

Exploramos os diferentes usos da instrução groupby neste artigo. Mostramos como você pode dividir os dados em grupos e, aplicando diferentes agregações ou funções, você pode facilmente recuperar esses grupos.

Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...
Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...