Como calcular a média condicional em pandas (com exemplos)
Você pode usar a seguinte sintaxe para calcular uma média condicional em pandas:
df. loc [df[' team '] == ' A ', ' points ']. mean ()
Isto calcula a média da coluna “pontos” para cada linha no DataFrame onde a coluna “equipe” é igual a “A”.
Os exemplos a seguir mostram como usar essa sintaxe na prática com o seguinte DataFrame do 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
Exemplo 1: Calcule a média condicional para uma variável categórica
O código a seguir mostra como calcular a média da coluna “pontos” apenas para linhas no DataFrame onde a coluna “equipe” possui o valor “A”.
#calculate mean of 'points' column for rows where team equals 'A'
df. loc [df[' team '] == ' A ', ' points ']. mean ()
94.0
O valor médio na coluna “pontos” para linhas onde “equipe” é igual a “A” é 94 .
Podemos verificar isso manualmente calculando a média dos valores dos pontos apenas para linhas onde “equipe” é igual a “A”:
- Pontos médios: (99 + 90 + 93) / 3 = 94
Exemplo 2: Calcule a média condicional para uma variável numérica
O código a seguir mostra como calcular a média da coluna “assistências” apenas para linhas no DataFrame onde a coluna “pontos” tem um valor maior ou igual a 90.
#calculate mean of 'assists' column for rows where 'points' >= 90
df. loc [df[' points '] >= 90 , ' assists ']. mean ()
30.666666666666668
O valor médio na coluna “assistências” para linhas onde os “pontos” são maiores ou iguais a 90 é 30,66667 .
Podemos verificar isso manualmente calculando a média dos valores dos pontos apenas para linhas onde “equipe” é igual a “A”:
- Média de assistências: (33 + 28 + 31) / 3 = 30,66667
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Como calcular a média das colunas no Pandas
Como calcular uma média móvel em Pandas
Como preencher valores NaN com média em pandas