Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Agrupación Compleja | Agregación de Datos
Técnicas Avanzadas en Pandas

bookAgrupación Compleja

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

Observe la columna 'Length'; aquí, tenemos la duración del vuelo en minutos. Imagine 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 columna 'Airline'. Para ello, podemos calcular el valor máximo de la columna 'Length' para cada clave de grupo y luego dividirlo por 60. Consulte 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, así que con el agrupamiento de datos, todo sigue igual; 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

Swipe to start coding

La tarea consiste en agrupar los datos por el aeropuerto de origen del vuelo y luego por el día de la semana. Calcule la cantidad mínima de tiempo de la suma de las columnas de los grupos 'Length' y 'Time' para determinar cuánto puede durar un vuelo con retraso. Siga el algoritmo para gestionar la tarea:

Agrupar datos:

  • Guarde la lista de columnas 'AirportFrom', 'Airline', 'Time' y 'Length' (en este orden) en la variable columns;
  • Extraiga columns de data;
  • El orden es fundamental dentro del método .groupby(); coloque las columnas 'AirportFrom' y 'Airline' en este orden;
  • Aplique la función a los valores del conjunto de datos que tengan las mismas claves de grupo;
  • Calcule la suma de las dos columnas: 'Length' y 'Time'. Luego, encuentre su valor mínimo.

Solución

¿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

Suggested prompts:

Can you explain what the output of this code will look like?

How does the `.apply()` method differ from using `.agg()` in this context?

Can you show how to reset the index of the resulting DataFrame?

close

Awesome!

Completion rate improved to 3.03

bookAgrupación Compleja

Desliza para mostrar el menú

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

Observe la columna 'Length'; aquí, tenemos la duración del vuelo en minutos. Imagine 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 columna 'Airline'. Para ello, podemos calcular el valor máximo de la columna 'Length' para cada clave de grupo y luego dividirlo por 60. Consulte 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, así que con el agrupamiento de datos, todo sigue igual; 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

Swipe to start coding

La tarea consiste en agrupar los datos por el aeropuerto de origen del vuelo y luego por el día de la semana. Calcule la cantidad mínima de tiempo de la suma de las columnas de los grupos 'Length' y 'Time' para determinar cuánto puede durar un vuelo con retraso. Siga el algoritmo para gestionar la tarea:

Agrupar datos:

  • Guarde la lista de columnas 'AirportFrom', 'Airline', 'Time' y 'Length' (en este orden) en la variable columns;
  • Extraiga columns de data;
  • El orden es fundamental dentro del método .groupby(); coloque las columnas 'AirportFrom' y 'Airline' en este orden;
  • Aplique la función a los valores del conjunto de datos que tengan las mismas claves de grupo;
  • Calcule la suma de las dos columnas: 'Length' y 'Time'. Luego, encuentre su valor mínimo.

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

some-alt