Вы можете использовать следующий синтаксис для вычисления условного среднего значения в pandas:
df.loc[df['team'] == 'A', 'points'].mean()
Это вычисляет среднее значение столбца «точки» для каждой строки в DataFrame, где столбец «команда» равен «А».
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B'],
'points': [99, 90, 93, 86, 88, 82],
'assists': [33, 28, 31, 39, 34, 30]})
#view DataFrame
print(df)
team points assists
0 A 99 33
1 A 90 28
2 A 93 31
3 B 86 39
4 B 88 34
5 B 82 30
Пример 1: Расчет условного среднего для категориальной переменной
В следующем коде показано, как вычислить среднее значение столбца «точки» только для строк в DataFrame, где столбец «команда» имеет значение «А».
#calculate mean of 'points' column for rows where team equals 'A'
df.loc[df['team'] == 'A', 'points'].mean()
94.0
Среднее значение в столбце «Очки» для строк, где «команда» равно «А», равно 94 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
- Среднее количество баллов: (99 + 90 + 93) / 3 = 94
Пример 2. Вычисление условного среднего для числовой переменной
В следующем коде показано, как вычислить среднее значение столбца «помощь» только для строк в DataFrame, где столбец «точки» имеет значение больше или равное 90.
#calculate mean of 'assists' column for rows where 'points' >= 90
df.loc[df['points'] >= 90 , 'assists'].mean()
30.666666666666668
Среднее значение в столбце «ассисты» для строк, где «очки» больше или равны 90, составляет 30,66667 .
Мы можем вручную проверить это, рассчитав среднее значение очков только для строк, где «команда» равна «А»:
- Среднее количество передач: (33 + 28 + 31) / 3 = 30,66667.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как рассчитать среднее значение столбцов в Pandas
Как рассчитать скользящее среднее в Pandas
Как заполнить значения NaN средним значением в Pandas