Como usar o grupo por pandas python

Como usar o grupo por pandas python
O grupo de pandas por função é usado para agrupar objetos ou colunas de quadros de dados com base em condições ou regras específicas. 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 de 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, dividindo em que os dados se dividem 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, passaremos pelos usos básicos de um grupo por função no Python de Panda. Todos os comandos são executados no editor de 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 (Names, designação, funcionário, idade, idade).

Concatenação de string usando o grupo por função

Usando a função do grupo, 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 de designação dos funcionários e nos juntamos aos funcionários que têm a mesma designação. A função Lambda é aplicada em 'funcionários_name'.

importar pandas como PD
df = pd.Quadro de dados(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.grupo ("designação") ['funcionário_names'].Aplicar (lambda funcionário_names: ','.ingressar (funcionário_names)))
Impressão (DF1)

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

Classificando valores em uma ordem ascendente

Use o objeto Groupby em um quadro de dados regular ligando '.to_frame () 'e, em seguida. Classifique os valores da coluna chamando o sort_values ​​().

Exemplo

Neste exemplo, classificaremos a idade do funcionário em ordem crescente. Usando a seguinte parte do código, recuperamos o 'funcionário_age' em ordem crescente com 'funcionário_names'.

importar pandas como PD
df = pd.Quadro de dados(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.grupo ('funcionário_names') ['funcionário_age'].soma().enquadrar().reset_index ().Sort_Values ​​(por = 'funcionário_age')
Impressão (DF1)

Uso de agregados com grupo

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

Exemplo

Neste exemplo, usamos uma função 'count ()' com o grupo para contar os funcionários que pertencem ao mesmo 'funcionário_city'.

importar pandas como PD
df = pd.Quadro de dados(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.grupo ('funcionário_city').contar()
Impressão (DF1)

Como você pode ver a seguinte saída, sob a designação, Nomes de Funcionário e Funcionário, contam números que pertencem à mesma cidade:

Visualize dados usando o grupo

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

Exemplo

Aqui, o exemplo a seguir visualiza o 'funcionário_age' com 'funcionário_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', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
quadro de dados.grupo ('funcionário_names').soma().plot (tipo = 'bar')
plt.mostrar()

Exemplo

Para plotar o gráfico empilhado usando o grupo, gire o 'empilhado = 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', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.grupo (['funcionário_city', 'funcionário_names'])).tamanho().Destack ().plot (tipo = 'bar', empilhado = true, fontsize = '6')
plt.mostrar()

No gráfico abaixo do goleiro, 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', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.grupo ('funcionário_names') ['designação'].soma().reset_index (nome = 'funcionário_designação')
Impressão (DF1)

No exemplo acima, o nome da 'designação' é alterado para 'Employee_Designation'.

Recuperar o grupo por chave ou valor

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

Exemplo

No exemplo abaixo, temos dados de grupo com base na 'designação'. Então, o grupo 'pessoal' é recuperado usando o .GetGroup ('Staff').

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', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.grupo ('designação')
Imprima (Extract_value.get_group ('Staff'))

Os seguintes resultados são exibidos na janela de saída:

Adicionar valor à lista de grupo

Dados semelhantes podem ser exibidos na forma de uma lista usando a instrução GRUPYBY. Primeiro, agrupe os dados com base em uma condição. Então, aplicando 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 'funcionário_city' e, ao aplicar 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', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.grupo ('funcionário_city') ['funcionário_names'].Aplicar (Lambda Group_Series: Group_Series.listar()).reset_index ()
Impressão (DF1)

Uso da função de transformação com grupo

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

importar pandas como PD
df = pd.Quadro de dados(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Designação': ['Gerente', 'Staff', 'Oficial de TI', 'Oficial de TI', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Funcionário_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.grupo (['funcionário_names']) ['funcionário_age'].Transform ('Sum')
Impressão (DF)

Conclusão

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