Метод mean
Метод mean применяется к объекту GroupBy
и возвращает среднее арифметическое значение для каждой группы.
По умолчанию метод вычисляет среднее только для числовых столбцов,
пропуская NaN значения. Метод имеет параметр numeric_only,
который позволяет указать, следует ли включать только числовые столбцы.
Синтаксис
df.groupby(by).mean(numeric_only=True)
Пример
Давайте сгруппируем данные по столбцу a и вычислим среднее для каждой группы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [10, 20, 30, 40, 50],
'c': [1, 2, 3, 4, 5]
})
res = df.groupby('a').mean()
print(res)
Результат выполнения кода:
b c
a
1 15.0 1.5
2 35.0 3.5
3 50.0 5.0
Пример
Давайте вычислим среднее только для числовых столбцов. Столбец a
является числовым и будет использован в расчётах:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': ['x', 'y', 'z', 'w', 'v'],
'c': [10, 20, 30, 40, 50]
})
res = df.groupby('a').mean()
print(res)
Результат выполнения кода:
c
a
1 15.0
2 35.0
3 50.0
Пример
Давайте сгруппируем данные по нескольким столбцам и вычислим среднее для каждой группы:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 1, 2, 2],
'b': [10, 10, 20, 20, 30],
'c': [1, 2, 3, 4, 5],
'd': [10, 20, 30, 40, 50]
})
res = df.groupby(['a', 'b']).mean()
print(res)
Результат выполнения кода:
c d
a b
1 10 1.5 15.0
20 3.0 30.0
2 20 4.0 40.0
30 5.0 50.0
Пример
Давайте вычислим среднее для группы, игнорируя NaN значения.
Метод автоматически пропускает их:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [10, np.nan, 30, 40, 50],
'c': [1, 2, 3, np.nan, 5]
})
res = df.groupby('a').mean()
print(res)
Результат выполнения кода:
b c
a
1 10.0 1.5
2 35.0 3.0
3 50.0 5.0