JavaRush /Курси /Python SELF UA /Групування даних і обчислення суми та середнього значення...

Групування даних і обчислення суми та середнього значення

Python SELF UA
Рівень 28 , Лекція 0
Відкрита

1. Вступ до групування даних

Принцип групування даних

У реальному житті ми часто групуємо об'єкти за якимись ознаками: книги з книгами, овочі з овочами, люди з людьми (ну, ви зрозуміли). У програмуванні це працює так само. Групування даних дозволяє нам розбити великий обсяг даних на менші, більш керовані частини, щоб потім їх аналізувати.

У pandas для цього використовується метод groupby, який дозволяє розбити дані на групи і виконувати різні операції для кожної з них. Наприклад, ви можете згрупувати продажі за відділами магазину та підрахувати загальну виручку в кожному з них.

Ось приклад, як це може виглядати:

Python

import pandas as pd

# Створюємо DataFrame з даними про продажі
data = {'Відділ': ['Продукти', 'Техніка', 'Продукти', 'Книги', 'Техніка'],
        'Виручка': [100, 200, 150, 50, 300]}

df = pd.DataFrame(data)

# Групуємо дані за відділами та рахуємо сумарну виручку
група = df.groupby('Відділ')['Виручка'].sum()
print(група)

Приклади застосування групування

Групування особливо корисне, коли потрібно порівняти дані між різними категоріями. Наприклад, якщо ви працюєте в HR і хочете дізнатися середню зарплату у різних відділах компанії, або якщо ви маркетолог і вас цікавить, у якому місяці було найбільше продажів для кожного продукту. Ці задачі значно спрощуються за допомогою можливостей групування у pandas.

2. Обчислення агрегатних функцій

Вступ до агрегатних функцій

Агрегатні функції — це спеціальні функції, які застосовуються до групи даних і повертають одне значення. Найпоширеніші з них — це sum (сума), mean (середнє значення), і count (кількість елементів). Вони дозволяють звести великий обсяг інформації до більш простих і зрозумілих метрик.

Використання агрегатних функцій

Ми вже бачили, як рахувати суму у попередньому прикладі. Тепер давайте подивимося, як можна обчислити середнє значення та кількість продажів у кожному відділі.

Python

# Рахуємо середню виручку за відділами
середнє = df.groupby('Відділ')['Виручка'].mean()
print(середнє)

# Рахуємо кількість продажів у кожному відділі
кількість = df.groupby('Відділ')['Виручка'].count()
print(кількість)

Приклади обчислення агрегатів

Припустимо, у вас є дані про відвідуваність користувачів на сайті, і ви хочете зрозуміти, скільки людей у середньому заходять на сайт кожного дня тижня. Це класична задача для групування та використання функції mean.

Python

data = {'День': ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Ср', 'Вт'],
        'Відвідуваність': [120, 150, 170, 160, 180, 300, 220]}

df = pd.DataFrame(data)

# Рахуємо середню кількість відвідувань за днями
середні_відвідування = df.groupby('День')['Відвідуваність'].mean()
print(середні_відвідування)

3. Практична робота

Завдання за групуванням даних і обчисленням агрегатів

Уявімо, що у вас є масив даних про продажі. Завдання: згрупувати їх за категоріями та обчислити сумарні продажі, середню вартість замовлення та кількість замовлень у кожній категорії. Це допоможе вам зрозуміти, які категорії товарів приносять найбільший прибуток і де ховаються потенційні "золоті жили".

Python

data = {
    'Категорія': ['Електроніка', 'Одяг', 'Електроніка', 'Книги', 'Книги', 'Одяг'],
    'Сума_замовлення': [250, 100, 150, 200, 500, 300]
}

df = pd.DataFrame(data)

# Рахуємо сумарні продажі за категоріями
сума = df.groupby('Категорія')['Сума_замовлення'].sum()
print(сума)

# Рахуємо середню вартість замовлення за категоріями
середня_вартість = df.groupby('Категорія')['Сума_замовлення'].mean()
print(середня_вартість)

# Рахуємо кількість замовлень за категоріями
кількість_замовлень = df.groupby('Категорія')['Сума_замовлення'].count()
print(кількість_замовлень)

Обговорення результатів групування та аналіз даних

Після виконання завдання щодо групування даних і обчислення агрегатів, дуже корисно провести аналіз отриманих даних. Ви можете помітити, що, наприклад, категорія "Книги" має найбільшу суму замовлень завдяки одному великому замовленню. Або що "Одяг" має найбільше замовлень, але середня вартість замовлення нижча, ніж у "Електроніки".

Такий аналіз може допомогти прийняти обґрунтовані бізнес-рішення, наприклад, зосередитися на збільшенні середнього розміру замовлення у категорії з найбільшою кількістю замовлень, але меншою середньою вартістю.

4. Помилки та особливості

Коли працюєш із групуванням, одна з найчастіших помилок — це забути використовувати круглі дужки при застосуванні агрегатних функцій. Наприклад, писати df.groupby('Категорія').sum() замість df.groupby('Категорія')['Сума_замовлення'].sum(). Також, іноді виникають проблеми з пропусками в даних. Pandas має зручні методи для роботи з пропусками, такі як fillna(), який дозволяє замінювати відсутні значення на задані, щоб уникнути викривлень у розрахунках.

Крім цього, стежте за тим, щоб типи даних були правильними. Іноді стовпці з числами можуть бути прочитані як рядки, і при спробі агрегувати такі дані виникатимуть помилки.

Якщо вам потрібно заглибитися у роботу з pandas та методами групування, звертайтесь до офіційної документації pandas для детальнішого вивчення та прикладів.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ