Pandas — мощная библиотека Python для обработки и анализа данных. Одной из его ключевых функций является возможность группировать данные с помощью функции groupby
. В этой статье мы рассмотрим различные методы создания новых DataFrames из операции GroupBy в Pandas. Мы предоставим примеры кода для каждого метода, что позволит вам поэкспериментировать с собственными наборами данных.
Метод 1: агрегирование результатов GroupBy
Наиболее распространенным вариантом использования GroupBy является выполнение агрегирования сгруппированных данных. Мы можем создать новый DataFrame, применив агрегатные функции, такие как sum
, mean
, count
и т. д., к сгруппированным данным. Вот пример:
import pandas as pd
# Create a DataFrame
data = {'Name': ['John', 'Alice', 'Bob', 'John', 'Alice'],
'Age': [25, 28, 30, 25, 28],
'Salary': [50000, 60000, 55000, 52000, 63000]}
df = pd.DataFrame(data)
# GroupBy 'Name' column and calculate the mean salary
grouped_df = df.groupby('Name').agg({'Salary': 'mean'}).reset_index()
Метод 2: преобразование результатов GroupBy
Иногда вместо агрегирования данных нам может потребоваться преобразовать сгруппированные данные и создать новый DataFrame той же формы, что и исходный. Для этой цели можно использовать функцию transform
. Вот пример расчета стандартизированного возраста для каждой группы:
# Standardize the 'Age' column within each group
df['Standardized_Age'] = df.groupby('Name')['Age'].transform(lambda x: (x - x.mean()) / x.std())
Метод 3: фильтрация результатов по группе
Другим распространенным сценарием является фильтрация данных на основе условий, специфичных для группы. Мы можем использовать функцию filter
для создания нового DataFrame, включающего только те группы, которые удовлетворяют указанным условиям. Вот пример, в котором выбираются группы с минимальной средней зарплатой выше порогового значения:
# Filter groups with average salary above 55000
filtered_df = df.groupby('Name').filter(lambda x: x['Salary'].mean() > 55000)
Метод 4: применение пользовательских функций
В некоторых случаях нам может потребоваться применить пользовательскую функцию к сгруппированным данным и создать новый DataFrame с результатами. Функция apply
позволяет нам добиться этого. Вот пример расчета процентиля заработной платы для каждой группы:
# Calculate the salary percentile within each group
def calculate_percentile(x):
return x.rank(pct=True)
df['Salary_Percentile'] = df.groupby('Name')['Salary'].apply(calculate_percentile)
В этой статье мы рассмотрели различные методы создания новых DataFrames из операции GroupBy в Pandas. Мы рассмотрели агрегирование данных, преобразование данных, фильтрацию данных и применение пользовательских функций. Освоив эти методы, вы получите прочную основу для выполнения сложных манипуляций с данными и анализа в Pandas.
Помните, GroupBy — это мощный инструмент в Pandas, который позволяет вам манипулировать и анализировать данные на уровне группы. Экспериментируйте с различными методами и адаптируйте их к своим конкретным случаям использования, чтобы раскрыть весь потенциал ваших данных.
Внедрение этих методов улучшит ваш рабочий процесс анализа данных и поможет вам извлечь ценную информацию из ваших наборов данных.
Используя предоставленные примеры кода и следуя пошаговым объяснениям, вы будете хорошо подготовлены к использованию GroupBy в Pandas для своих проектов анализа данных.
Удачного программирования и исследования данных!