Groupby Pandas: The Ultimate Guide for Data Analysts
Модуль pandas имеет встроенную функцию groupby(), которая позволяет группировать данные по одному или нескольким столбцам и выполнять различные агрегатные функции (сумма, среднее, максимум/минимум и т.д.) для каждой группы. Это очень полезно, когда нужно анализировать большие объемы данных и извлекать интересующую информацию из них.
Пример использования функции groupby() в pandas:
Предположим, у нас есть DataFrame с информацией о фильмах:
import pandas as pd
data = {'movie': ['A', 'B', 'C', 'D', 'E', 'F'],
'genre': ['Action', 'Comedy', 'Comedy', 'Action', 'Drama', 'Drama'],
'director': ['John', 'Jane', 'John', 'Michael', 'Jane', 'Michael'],
'rating': [7.5, 8.1, 6.9, 7.3, 8.8, 7.6],
'duration': [120, 110, 100, 115, 90, 105]}
df = pd.DataFrame(data)
Теперь мы можем сгруппировать наш DataFrame по столбцу 'genre' и посчитать средний рейтинг для каждой группы:
grouped_by_genre = df.groupby('genre')
average_rating = grouped_by_genre['rating'].mean()
print(average_rating)
Выходные данные:
Action 7.4
Comedy 7.5
Drama 8.2
Name: rating, dtype: float64
В данном примере мы сгруппировали наш DataFrame по столбцу 'genre' методом groupby() и вычислили средний рейтинг для каждой группы методом mean(). Таким образом, мы получили средний рейтинг для всех фильмов жанра 'Action', 'Comedy' и 'Drama'.
Кроме того, мы можем использовать несколько столбцов для группировки данных. Например, мы можем сгруппировать фильмы по жанру и режиссеру, и вычислить среднюю продолжительность фильмов в каждой группе:
grouped_by_genre_and_director = df.groupby(['genre', 'director'])
average_duration = grouped_by_genre_and_director['duration'].mean()
print(average_duration)
Выходные данные:
genre director
Action John 117.5
Michael 115.0
Comedy Jane 110.0
John 100.0
Drama Jane 90.0
Michael 105.0
Name: duration, dtype: float64
В данном примере мы сгруппировали фильмы по жанру и режиссеру методом groupby() и вычислили среднюю продолжительность фильмов в каждой группе методом mean(). Таким образом, мы получили среднюю продолжительность для всех фильмов жанра 'Action', 'Comedy' и 'Drama', выпущенных режиссерами John, Jane и Michael.
Таким образом, функция groupby() в pandas является мощным инструментом для группировки данных и выполнения агрегатных функций. Она может быть использована для различных целей, от анализа данных до машинного обучения и статистики.