Renomeando e Limpando nomes de colunas com Pandas

Fonte: Pandas 1.x CookBook

Renomeando nomes de colunas

Uma das operações mais comuns em um DataFrame é renomear os nomes das colunas. É recomnedável renomear colunas para que elas também sejam nomes de atributos Python válidos. Isso significa que elas não começam com números e são alfanuméricos minúsculos com sublinhados. Bons nomes de colunas também devem ser descritivos, breves e não colidir com os atributos de DataFrame ou Series existentes.

Neste passo a passo, os nomes das colunas são renomeadas. A motivação para renomear é tornar o código mais fácil de entender e também permitir que seu ambiente o ajude. Lembre-se de que o Jupyter permitirá que você conclua métodos da série se você acessou a série usando a notação de ponto (mas não permitirá a conclusão do método no acesso ao índice).

Como fazer isso…

  1. Leia no conjunto de dados do filme e torne o índice significativo definindo-o como o título do filme:

Usar mapeamento com dicionários

2. O método DataFrame renomeado aceita dicionários que mapeiam o valor antigo para o novo valor. Vamos criar um para as colunas:

.rename(columns=col_map)

3. Passe os dicionários para o método de renomeação e atribua o resultado a uma nova variável:

Como funciona…

O método .rename em um DataFrame permite que os rótulos das colunas sejam renomeados. Podemos renomear as colunas atribuindo ao atributo colunas. A próxima seção mostra um exemplo de renomeação via atribuição para o atributo .columns:

Neste passo a passo, mudamos os nomes das colunas. Você também pode renomear o índice usando o método .rename se quiser. Isso faz mais sentido se as colunas são valores de string. Então vamos definir o índice para a coluna movie_title e, em seguida, mapear esses valores para novos:

Existem várias maneiras de renomear rótulos de linhas e colunas. É possível redesignar os atributos de índice e coluna para uma lista Python. Esta atribuição funciona quando a lista tem o mesmo número de elementos que os rótulos de linha e coluna.

O código a seguir mostra um exemplo. Leremos os dados do arquivo CSV e usaremos o parâmetro index_col para dizer aos pandas que usem a coluna movie_title como índice. Em seguida, usamos o método .tolist em cada objeto Index para criar uma lista python de rótulos. Depois, modificamos três valores em cada uma das listas e os reatribuímos para os atributos .index e .column:

Outra opção é passar uma função para o método .rename. A função leva um nome de coluna e retorna um novo nome. Supondo que haja espaços e maiúsculas nas colunas, este código irá limpá-los:

Criando função de limpeza de nomes

Outra opção é passar uma função para o método .rename. A função leva um nome de coluna e retorna um novo nome. Supondo que haja espaços e maiúsdias nas colunas, este código irá limpá-los:

Compreensão da lista de nomes da coluna de limpeza

No código pandas na natureza, você também verá compreensãos de lista usadas para limpar os nomes das colunas. Com a nova lista de limpeza, você pode reatribuir o resultado de volta para o atributo .columns. Supondo que haja espaços e maiúsdias nas colunas, este código irá limpá-los:

Como esse código com list comprehension sofre mutação no DataFrame original, considere usar o método .rename.

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store