Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Agrupación Complicada | Agregación de Datos
Manipulación de Datos con Pandas
Sección 4. Capítulo 3
single

single

bookAgrupación Complicada

Desliza para mostrar el menú

A veces ocurre que no estamos satisfechos con las funciones integradas de pandas, como .mean() o .min() al agrupar.

Observa la columna 'Length'; aquí tenemos la duración del vuelo en minutos. Imagina que queremos calcular el tiempo máximo en horas para los elementos que tienen el mismo valor en la columna 'Flight' y luego en la de 'Airline'. Para hacerlo, podemos calcular el valor máximo de la columna 'Length' para cada clave de grupo y luego dividirlo por 60. Observa el ejemplo y la explicación a continuación.

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Explicación:

Hicimos que el ejemplo de los capítulos anteriores fuera un poco más complicado, pero con el agrupamiento de datos, todo sigue igual; ahora pasemos al método .apply().

.apply(lambda x: x['Length'].max()/60)
  • .apply() - ayuda a aplicar una función específica a las columnas necesarias;
  • en la función lambda, x es el argumento y x['Length'].max()/60 es la expresión. Así, la función encuentra el valor máximo para cada clave de grupo y divide el valor agregado por 60.
Tarea

Desliza para comenzar a programar

Tu tarea aquí es analizar las duraciones de los vuelos considerando el aeropuerto, la aerolínea y el día de la semana. Agrupa los datos para determinar el tiempo total mínimo de vuelo (la suma de 'Length' y 'Time') para cada combinación única de aeropuerto de salida, aerolínea y día de la semana.

Sigue el algoritmo paso a paso:

  1. Guarda la lista de columnas 'AirportFrom', 'Airline', 'DayOfWeek', 'Time' y 'Length' (en este orden) en la variable columns.
  2. Extrae estas columnas de data usando la notación de corchetes (data[columns]).
  3. Agrupa el conjunto de datos por 'AirportFrom', 'Airline' y 'DayOfWeek' (en este orden exacto).
  4. Dentro del método .groupby(), aplica la función .apply() para calcular la suma de las columnas 'Length' y 'Time' para cada grupo, y luego encuentra el mínimo de esta suma.
  5. Asigna el resultado a una variable llamada data_flights.
  6. Muestra las primeras 10 filas de la Serie resultante usando .head(10).

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt