Pandas: use groupby para calcular a média e não ignore nans


Ao usar a função pandas groupby() para agrupar por uma coluna e calcular o valor médio de outra coluna, o pandas ignorará os valores NaN por padrão.

Se você quiser exibir NaN se houver valores NaN presentes em uma coluna, você pode usar a seguinte sintaxe básica:

 df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

Este exemplo específico agrupará as linhas da coluna DataFrame por equipe e, em seguida, calculará o valor médio da coluna de pontos sem ignorar os valores NaN .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: use pandas groupby() e não ignore NaNs

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vários jogadores de basquete:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [15, np.nan, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team points
0 to 15.0
1 A NaN
2 A 24.0
3 A 25.0
4 A 20.0
5 B 35.0
6 B 34.0
7B 19.0
8B 14.0
9B 12.0

Suponha que usemos a seguinte sintaxe para calcular o valor médio dos pontos , agrupados por equipe :

 #calculate mean of points, grouped by team
df. groupby (' team ')[' points ']. mean ()

team
At 21.0
B 22.8
Name: points, dtype: float64

Observe que o valor médio de pontos de cada equipe é retornado, mesmo que haja um valor NaN para a Equipe A na coluna de pontos.

Por padrão, o pandas simplesmente ignora o valor NaN ao calcular a média.

Se você quiser exibir NaN como o valor médio se realmente houver NaNs presentes, você pode usar a seguinte sintaxe:

 #calculate mean points value grouped by team and don't ignore NaNs
df. groupby (' team '). agg ({' points ': lambda x: x. mean (skipna= False )})

      points
team	
To NaN
B 22.8

Observe que um valor NaN é retornado como o valor médio de pontos para a Equipe A desta vez.

Usando o argumento skipna=False , dissemos aos pandas para não ignorarem os valores NaN ao calcular a média.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como contar valores únicos usando Pandas GroupBy
Como aplicar uma função ao Pandas Groupby
Como criar um gráfico de barras do Pandas GroupBy

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *