Menu
CoddyTech

Группировка данных

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 43 из 60.

В каком городе продают больше? Одно среднее значение по всем строкам этого не покажет. Раздели строки на группы — по одной для каждого города, — а затем вычисли среднее значение для каждой группы:

Шесть строк с данными магазинов разделены на три группы по городам: Лион, Ницца и Париж, затем для каждой группы вычислено среднее значение: Лион — 23.0, Ницца — 18.0, Париж — 38.0

Одна строка делает и то и другое:

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)

Это выводит:

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

groupby("city") формирует группы, ["sales"] выбирает столбец, .mean() вычисляет среднее значение для каждой группы. Также работают .sum(), .min() и .max().

Чтобы ранжировать стопки, отсортируй их: means.sort_values(ascending=False).index[0] — это Paris, лидер продаж.

challenge icon

Задание

Средне

В беговом клубе записывают каждую пробежку в runs.csv: runner, distance_km, minutes и climb_m. В начальном коде один из столбцов с числовыми данными считывается в column.

  1. Выведите среднее значение в этом столбце для каждого бегуна.
  2. Затем укажите бегуна с наибольшим средним значением, как в последней строке ниже.

Для клуба из двух бегунов и distance_km:

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

Попробуйте сами

import pandas as pd

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

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python