O Pandas Groupby se aplica

O Pandas Groupby se aplica
A biblioteca Python mais popular para manipulação e análise de dados é pandas. A análise de dados freqüentemente exige que os dados sejam divididos em grupos para executar diferentes operações em cada grupo. A estratégia Split-Apply-Commbine é usada pela função do grupo em pandas. Isso envolve separar um objeto, usar funções no objeto e combinar os resultados. Neste post para manipular dados agrupados de várias maneiras, a função do grupo será usada. Um dos métodos comumente usados ​​para o pré -processamento de dados é o aplicar() método. A aplicação de uma função a todos os itens em uma série de pandas e a coluna ou linha de todos os dados em pandas é tornada mais simples. O método Aplicar () em pandas será abordado neste artigo, juntamente com a função groupby ().

Hot para usar a função Aplicar () em dados agrupados

Podemos usar a função Aplicar () para várias funções nas linhas e colunas do quadro de dados. Os objetos fornecidos à função são objetos de série cujo valor de índice é o índice das linhas de quadro de dados (eixo = 0) ou o número de colunas no DataFrame (Axis = 1). O uso deste método retornará o quadro ou série ao longo do eixo especificado. Se queremos mudar uma determinada coluna sem alterar outras colunas, podemos usar esta função. O DAtaframe.aplicar() A sintaxe do método é dada abaixo.

Sintaxe: Quadro de dados.aplicar (func, eixo = 0, cru = false, resultado_type = nenhum, args = (), ** kWds)

Onde:

functão: Representa a função que será aplicada a cada linha ou coluna

eixo: Especifica a direção ao longo do qual o método será aplicado: 0 ou "índice" aplica a função a todas as colunas, enquanto 1 ou "colunas" aplica a função a todas as linhas.

resultado_type: Oferece as opções "Reduce", "Expand", "Broadcast" e "Nenhum". O 'Nenhum' é o valor padrão.

Estes funcionam apenas com eixo = 1 (colunas):

expandir: As colunas serão criadas a partir dos resultados que se assemelham às listas.

reduzir: Em contraste com "estender", isso retorna uma série sempre que é viável, em vez de expandir resultados que se assemelham a listas.

transmissão: As colunas e índice originais serão mantidos e transmitirá os resultados para o quadro de dados em sua forma original.

Vamos também dar uma olhada na sintaxe da função groupby () para agrupar os dados:

Sintaxe: Quadro de dados.grupo (por = nenhum, eixo = 0, nível = nenhum, as_index = true, sort = true, group_keys = true, squeeze = nodefault.no_default, observado = false, Dropna = true)

por: função, lista de rótulos, mapeamento ou etiqueta. Para o grupo, é usado para criar os grupos. Os grupos serão determinados a partir dos valores ou séries do dicto se um deles for dado. Ele usa os valores como é para gerar os grupos se um ndary ou lista com um comprimento igual ao eixo escolhido for dado. Para agrupar pelas colunas de dados de dados em si mesmo, uma lista de rótulos ou uma única etiqueta pode ser dada/passada. Lembre -se de que cada tupla é vista como uma chave (única).

eixo: 'index' ou 0, 'colunas' ou 1, 0 por padrão. Divida ao longo de colunas ou linhas.

nível: nome do nível, sequência de tal, ou int. Padrão Nenhum. Os dados do grupo são baseados em um nível ou níveis específicos se o índice do eixo for um multiindex.

as_index: bool, é verdade por padrão. Retorne um objeto com nomes de grupo como índice para saída agregada. Aplicável apenas à entrada de dados de dados. Efetivamente, a saída agrupada "no estilo SQL" é "como index = false".

organizar: bool, é verdade por padrão. Chaves do grupo em ordem. Ao desligar isso, seu desempenho melhorará.

group_keys: bool, é verdade por padrão. Adicione as chaves do grupo ao índice quando a chamada se aplica para identificar as peças.

espremer: bool, é falso por padrão. Se possível, reduza a dimensionalidade do tipo de retorno; Caso contrário, retorna um tipo consistente.

observado: bool, é falso por padrão. Somente se um ou mais dos grupos forem categóricos, isso se aplicará. Exibir apenas o valor da saída para os grupos categóricos, se verdadeiro e mostre todos os valores de saída se false.

Dropna: bool, é verdade por padrão. Se TRUE e as chaves do grupo tiverem valores de NA, os valores de NA e a linha e coluna correspondentes serão removidas.

Vamos demonstrar alguns exemplos que ajudarão você a aprender a usar o groupby () e aplicar () funcionar juntos em pandas.

Exemplo # 1: determine a frequência dos valores em uma coluna de dados de dados

Para encontrar a frequência dos valores em uma coluna de dados de dados, devemos exigir um dados de dados primeiro. O DataFrame será criado usando o PD.Função DataFrame ().

Nós criamos um DataFrame. Vamos encontrar a frequência de valores de dados distintos na coluna 'grupo'. Antes de encontrar a frequência, primeiro agruparemos os dados com a ajuda do método Groupby (). Em seguida, definiremos uma função dentro da função Apply () para encontrar a frequência.

Os dados na coluna 'grupo' agora estão agrupados. Para encontrar a frequência, usamos funções e atributos internos de pandas: count () e forma []. Dentro da função Aplicar, o Lambda A função é usada para executar a função ou expressão especificada. A função determinou que a frequência para a categoria x é 0.57 e para Y é 0.42. O grupo X aparece em 57% das linhas; enquanto o grupo Y aparece em 42%.

Exemplo # 2: Determine o valor máximo em uma coluna DataFrame

Podemos usar o grupo () junto com a função APLIC () para determinar os valores máximos para cada dados agrupados. Novamente, criaremos um DataFrame para que possamos encontrar o valor máximo depois de agrupar os dados da coluna.

Primeiro, agruparemos os dados da 'equipe' da coluna para criar categorias. Em seguida, usaremos a função apply () dentro da qual usaremos a função de agregação 'max' para encontrar o valor máximo na coluna 'pontos' para cada categoria.

A equipe da coluna é agrupada em três categorias. Em seguida, a função Aplicar () determinou o valor máximo da coluna 'ponto' para cada categoria. A categoria 'ACE' tem o valor máximo de 14; enquanto 15 e 17 são os valores máximos para grupos beta e campeão, respectivamente.

Exemplo # 3: Execução de cálculos personalizados usando a função Aplicar () após agrupar os dados

Em vez de usar apenas funções de agregação embutida de pandas, também podemos definir funções personalizadas ou criar uma expressão dentro do aplicar() função para executar cálculos personalizados. Vamos criar um quadro de dados a partir do qual agruparemos os dados de uma coluna específica. Então, vamos realizar cálculos nele.

Vamos calcular a diferença média entre os valores para cada grupo.

Os dados da coluna 'aluno' são agrupados em três categorias 'Billy', 'Jim' e 'Mandy'. A diferença média entre a coluna 'total_marks' e 'obtida_marks' é obtida subtraindo os valores da coluna 'obtida_marks' da coluna 'total_marks' e aplicando a função média () a ele. O valor médio da diferença para a categoria 'Billy' é 3.66. Considerando que a diferença média para valores agrupados Jim e Mandy são 3 e 4, respectivamente.

Conclusão

Neste tutorial, discutimos como usar o grupo () e aplicar () funções juntas em pandas. Vimos a sintaxe de ambas as funções, juntamente com seus parâmetros para entender sua funcionalidade. Implementamos alguns exemplos neste tutorial para ensinar como você pode usar o grupo () e aplicar () funções usando as funções internas ou definindo funções personalizadas em pandas.