Как вычислить условное среднее в pandas (с примерами)
Вы можете использовать следующий синтаксис для расчета условного среднего значения в пандах:
df. loc [df[' team '] == ' A ', ' points ']. mean ()
При этом вычисляется среднее значение столбца «баллы» для каждой строки в DataFrame, где столбец «команда» равен «А».
В следующих примерах показано, как использовать этот синтаксис на практике со следующим DataFrame pandas:
import pandas as pd
#createDataFrame
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 to 99 33
1 A 90 28
2 A 93 31
3 B 86 39
4 B 88 34
5 B 82 30
Пример 1. Вычисление условного среднего значения для категориальной переменной
В следующем коде показано, как вычислить среднее значение столбца «очки» только для строк в DataFrame, где столбец «команда» имеет значение «A».
#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 средним значением в пандах