single
Agrupamento Avançado
Deslize para mostrar o menu
Vamos expandir nosso conhecimento sobre o método .groupby(). Como você se lembra, podemos usar o método .agg(). A principal vantagem dessa função é sua flexibilidade: ela permite aplicar múltiplas e diferentes agregações a múltiplas colunas ao mesmo tempo, retornando uma tabela resumo organizada.
Veja o exemplo abaixo. Agrupamos os voos por 'Airline'. Em seguida, usando .agg(), contamos o número total de voos (utilizando a coluna 'Delay') e, simultaneamente, encontramos as menores e maiores durações de voo (utilizando a coluna 'Length'). Muito prático, não é mesmo?
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data.groupby('Airline').agg({'Delay': 'count', 'Length': ['min', 'max']}) print(data_flights.head(10))
Explicação:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Abreviação de "aggregate" (agregar). Este método pega os dados agrupados e os condensa em estatísticas resumidas com base nas regras fornecidas.{}: Utilizamos um dicionário Python para mapear colunas específicas para operações específicas. As chaves são os nomes das colunas que você deseja selecionar, e os valores são as funções que você deseja aplicar.'Delay': 'count': Instrui o pandas a aplicar a função de contagem na coluna'Delay'para cada grupo. Observe que passamos o alias em string'count'em vez de escrevercount(). O pandas reconhece esses nomes padrão em string para estatísticas comuns.'Length': ['min', 'max']: Se você quiser aplicar mais de uma função a uma única coluna, deve colocar os nomes das funções dentro de uma lista[]. Aqui, calculamos tanto o valor mínimo quanto o máximo para a coluna'Length'.
Como aplicamos múltiplas funções, o DataFrame resultante criará automaticamente colunas hierárquicas (MultiIndex). Você verá Length no nível superior, com min e max organizados logo abaixo.
Deslize para começar a programar
Sua tarefa é aprofundar-se e analisar os tempos médios e máximos de atraso dependendo do aeroporto de origem do voo e, em seguida, do aeroporto de destino. Além disso, observe a mediana da duração do voo. Siga o algoritmo:
Agrupar dados:
- Aplique o método
.groupby()ao conjunto de dadosdata; - Dentro do método
.groupby(), insira as colunas'AirportFrom'e'AirportTo'; a ordem é fundamental; - Utilizando o método
.agg(), calcule os valores agregados: o valor médio e máximo na coluna'Time', e o valor mediano da coluna'Length'.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo