Menu
CoddyTech

Agrupar datos

Parte de la sección Datos y gráficos del Journey de Machine Learning de Coddy. Lección 43 de 60.

¿Qué ciudad vende más? Un promedio de todas las filas no puede responderlo. Divide las filas en grupos, uno por ciudad, y después calcula el promedio de cada grupo:

Seis filas de tiendas divididas en tres grupos por ciudad: Lyon, Nice y Paris; después se calcula el promedio de cada grupo: Lyon 23.0, Nice 18.0, Paris 38.0

Una línea hace ambas cosas:

shops = pd.DataFrame({
    "city": ["Lyon", "Paris", "Lyon", "Nice", "Paris", "Lyon"],
    "sales": [20, 35, 26, 18, 41, 23],
})
means = shops.groupby("city")["sales"].mean()
print(means)

Esto imprime:

city
Lyon     23.0
Nice     18.0
Paris    38.0
Name: sales, dtype: float64

groupby("city") crea los grupos, ["sales"] selecciona la columna, .mean() calcula el promedio de cada grupo. .sum(), .min() y .max() también funcionan.

Para clasificar las pilas, ordénalas: means.sort_values(ascending=False).index[0] es Paris, el más vendido.

challenge icon

Desafío

Intermedio

Un club de corredores registra cada carrera en runs.csv: runner, distance_km, minutes y climb_m. El código inicial lee una de las columnas numéricas en column.

  1. Imprime la media de esa columna para cada corredor.
  2. Después, indica el corredor con la media más alta, como en la última línea de abajo.

Para un club con dos corredores y distance_km:

runner
Ana    6.1
Bo     8.4
Name: distance_km, dtype: float64
Top runner: Bo with 8.4

Pruébalo tú mismo

import pandas as pd

runs = pd.read_csv("runs.csv")
column = input()

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Datos y gráficos

Practica por tu cuenta: Compilador de Python online