Como converter a saída groupby do pandas para dataframe


Este tutorial explica como converter a saída de um GroupBy do pandas em um DataFrame do pandas.

Exemplo: Converter a saída GroupBy do Pandas em DataFrame

Suponha que temos o seguinte DataFrame do pandas que mostra os pontos marcados por jogadores de basquete de diferentes times:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10

Podemos usar a seguinte sintaxe para contar o número de jogadores, agrupados por equipe e posição :

 #count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()

#viewoutput
print (group)

team position
AC 1
      F 1
      G2
BF 3
      G 1
dtype: int64

Na saída, podemos ver o número total de jogadores, agrupados por equipe e posição .

No entanto, digamos que queremos que nossa saída exiba o nome da equipe em cada linha assim:

 team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

Para alcançar este resultado, podemos simplesmente usar reset_index() ao executar GroupBy:

 #count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')

#viewoutput
print (df_out)

  team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

A saída agora aparece no formato desejado.

Observe que o argumento name em reset_index() especifica o nome da nova coluna produzida por GroupBy.

Também podemos confirmar que o resultado é de fato um DataFrame do pandas:

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

Nota : Você pode encontrar a documentação completa da operação GroupBy no pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Pandas: como calcular a soma acumulada por grupo
Pandas: como contar valores únicos por grupo
Pandas: como calcular a correlação por grupo

Add a Comment

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