Освоение манипулирования данными: подробное руководство по GroupBy в Python

В задачах анализа и манипулирования данными операция GroupBy — это фундаментальный метод, который позволяет нам группировать данные на основе определенных критериев и выполнять агрегирование или преобразования внутри каждой группы. В этой статье мы рассмотрим различные методы и приемы выполнения операций GroupBy в Python, а также приведем примеры кода. Независимо от того, являетесь ли вы ученым, аналитиком или просто энтузиастом данных, освоение GroupBy значительно улучшит ваши навыки манипулирования данными.

Методы и примеры кода:

  1. Pandas GroupBy:
    Pandas — это популярная библиотека манипулирования данными на Python, предоставляющая мощные функции GroupBy. Начнем с простого примера:
import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'Alice', 'John'],
        'Age': [25, 28, 30, 35, 40],
        'Salary': [50000, 60000, 55000, 70000, 65000]}
df = pd.DataFrame(data)
# GroupBy 'Name' and calculate mean salary
grouped = df.groupby('Name')
mean_salary = grouped['Salary'].mean()
print(mean_salary)
  1. SQL-подобная GroupBy в Pandas:
    Pandas также позволяет нам выполнять SQL-подобные операции GroupBy с помощью функции agg. Вот пример:
# GroupBy 'Name' and calculate multiple statistics
stats = df.groupby('Name').agg({'Salary': ['mean', 'min', 'max'], 'Age': 'median'})
print(stats)
  1. GroupBy с пользовательскими функциями:
    Вы можете определить пользовательские функции для применения в каждой группе. Вот пример расчета диапазона зарплат внутри каждой группы:
# Custom function to calculate salary range
def salary_range(series):
    return series.max() - series.min()
# Apply custom function using GroupBy
range_salary = grouped['Salary'].apply(salary_range)
print(range_salary)
  1. GroupBy в NumPy:
    NumPy, фундаментальная библиотека для числовых вычислений на Python, также предоставляет функцию GroupBy. Вот пример:
import numpy as np
# Create an array
data = np.array([1, 2, 3, 4, 5])
categories = np.array(['A', 'B', 'A', 'B', 'A'])
# GroupBy categories and calculate sum
grouped = np.bincount(categories, weights=data)
print(grouped)
  1. GroupBy в SQL:
    Если вы работаете с базами данных, вы можете использовать возможности GroupBy непосредственно в запросах SQL. Вот пример использования SQLite:
import sqlite3
# Connect to the database
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
# Execute SQL query with GroupBy
cursor.execute("SELECT Name, SUM(Salary) FROM employees GROUP BY Name")
result = cursor.fetchall()
print(result)

В этой статье мы рассмотрели различные методы выполнения операций GroupBy в Python. Мы рассмотрели библиотеку Pandas, SQL-подобную GroupBy, пользовательские функции, NumPy и даже GroupBy в SQL-запросах. Освоив эти методы, вы получите мощный набор инструментов для эффективного манипулирования и анализа данных.