Pandas, популярная библиотека Python для манипулирования и анализа данных, предлагает множество методов для вычисления описательной статистики ваших данных. Одной из распространенных задач является вычисление среднего значения для каждой категории или группы в наборе данных. В этой статье мы рассмотрим различные подходы для достижения этой цели, используя простой язык и практические примеры кода. Итак, давайте углубимся и разоблачим процесс расчета средних по категориям в Pandas!
Метод 1: groupby() и mean()
Функция groupby() в Pandas — мощный инструмент для группировки данных по определенным категориям. Чтобы вычислить среднее значение для каждой категории, мы можем объединить функцию groupby() с функциейmean(). Вот пример:
import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'A', 'B', 'B', 'B', 'C'],
'Value': [10, 15, 20, 25, 30, 35]}
df = pd.DataFrame(data)
# Calculate category-wise means
means = df.groupby('Category')['Value'].mean()
print(means)
Выход:
Category
A 12.5
B 25.0
C 35.0
Name: Value, dtype: float64
Метод 2: Pivot_table()
Еще один удобный метод в Pandas — Pivot_table(). Это позволяет нам создавать сводную таблицу, похожую на электронную таблицу, в которой суммируются данные по категориям. Чтобы рассчитать средние значения по категориям, мы можем указать столбец значений и соответствующие категории. Вот пример:
import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'A', 'B', 'B', 'B', 'C'],
'Value': [10, 15, 20, 25, 30, 35]}
df = pd.DataFrame(data)
# Calculate category-wise means using pivot_table()
means = df.pivot_table(values='Value', index='Category', aggfunc='mean')
print(means)
Выход:
Value
Category
A 12.5
B 25.0
C 35.0
Метод 3: agg() с groupby()
Если вам нужно вычислить несколько статистических данных, включая среднее значение, для каждой категории, вы можете использовать функцию agg() в сочетании с groupby(). Этот метод обеспечивает гибкость при одновременном вычислении различных статистических данных. Вот пример:
import pandas as pd
# Create a DataFrame
data = {'Category': ['A', 'A', 'B', 'B', 'B', 'C'],
'Value': [10, 15, 20, 25, 30, 35]}
df = pd.DataFrame(data)
# Calculate category-wise means and other statistics
summary = df.groupby('Category')['Value'].agg(['mean', 'min', 'max', 'sum'])
print(summary)
Выход:
mean min max sum
Category
A 12.5 10 15 25
B 25.0 20 30 75
C 35.0 35 35 35