Pandas: como alterar os nomes das colunas em uma tabela dinâmica
Freqüentemente, você pode querer alterar ou formatar os nomes das colunas em uma tabela dinâmica do pandas de uma maneira específica.
Felizmente, isso é fácil de fazer usando as funções integradas do pandas.
O exemplo a seguir mostra como fazer isso.
Exemplo: alterar nomes de colunas na tabela dinâmica do Pandas
Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vários jogadores de basquete:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'C', 'G', 'C', 'F', 'F'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position points 0 A G 4 1 A G 4 2 A F 6 3 A C 8 4 B G 9 5 B C 5 6 B F 5 7 B F 12
Podemos usar o código a seguir para criar uma tabela dinâmica no pandas que mostra o valor médio de pontos para cada equipe e posição no DataFrame:
#create pivot table
piv = pd. pivot_table (df, values=' points ', index=' team ', columns=' position ')
#view pivot table
print (piv)
CFG position
team
A 8.0 6.0 4.0
B 5.0 8.5 9.0
Agora, digamos que queremos remover a posição da palavra na tabela dinâmica e remover a linha extra da equipe da tabela dinâmica.
Podemos usar a seguinte sintaxe para fazer isso:
#format column names
iv. columns = ['_'. join (str(s). strip () for s in col if s) for col in piv. columns ]
#reset indexes
iv. reset_index (inplace= True )
#view updated pivot table
print (piv)
team CFG
0 A 8.0 6.0 4.0
1 B 5.0 8.5 9.0
Observe que conseguimos remover a posição da palavra na tabela dinâmica e remover a linha extra da equipe da tabela dinâmica.
Observe também que esta solução geral também funcionará para uma tabela dinâmica com MultiIndex.
Nota : Você pode encontrar a documentação completa da função pivot_table() do pandas aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:
Pandas: Como criar uma tabela dinâmica com número de valores
Pandas: como substituir valores NaN na tabela dinâmica por zeros
Pandas: Como converter tabela dinâmica em DataFrame