Como Renomear Colunas em Pandas DataFrame

Puneet Dobhal 30 janeiro 2023 1 novembro 2020
  1. Renomear colunas em Pandas DataFrame utilizando o método DataFrame.columns
  2. Renomear colunas em Pandas DataFrame Utilizando DataFrame.rename() Método
  3. Renomear colunas em Pandas DataFrame utilizando DataFrame.set_axis() Método
Como Renomear Colunas em Pandas DataFrame

Muitas vezes precisamos renomear uma coluna em Pandas ao realizar a análise de dados. Este artigo introduzirá diferentes métodos para renomear os nomes das colunas de Pandas em Pandas DataFrame.

Renomear colunas em Pandas DataFrame utilizando o método DataFrame.columns

Este método é bastante simples e permite renomear colunas diretamente. Podemos atribuir uma lista de novos nomes de colunas utilizando o atributo DataFrame.columns como segue:

import pandas as pd

example_df = pd.DataFrame([
                ['John', 20, 45], 
                ['Peter', 21, 62], 
                ['Scot', 25, 68]],
                index=[0, 1, 2], 
                columns=['Name', 'Age', 'Marks'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(example_df))
example_df.columns = ['Name','Age','Roll_no']

print"\nModified DataFrame"
print(pd.DataFrame(example_df))

Resultado:

Original DataFrame
    Name  Age  Marks
0   John   20     45
1  Peter   21     62
2   Scot   25     68

Modified DataFrame
    Name  Age  Roll_no
0   John   20       45
1  Peter   21       62
2   Scot   25       68

Uma desvantagem desta abordagem é que você tem que listar a coluna inteira mesmo que apenas uma das colunas precise ser renomeada. A especificação de toda a lista de colunas torna-se impraticável quando você tem um grande número de colunas.

Renomear colunas em Pandas DataFrame Utilizando DataFrame.rename() Método

A abordagem alternativa ao método anterior é utilizar o método DataFrame.rename(). Este método é bastante útil quando não precisamos renomear todas as colunas.

Precisaremos especificar o nome da coluna antiga como chave e os novos nomes como valores.

import pandas as pd

example_df = pd.DataFrame([['John', 20, 45, 78], 
                           ['Peter', 21, 62, 68], 
                           ['Scot', 25, 68, 95]],
                           index=[0, 1, 2], 
                           columns=['Name', 'Age', 'Marks','Roll_no'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(example_df))
example_df.rename(columns={'Marks': 'Roll_no', 
                           'Roll_no': 'Marks'}, inplace=True)

print"\nModified DataFrame"
print(pd.DataFrame(example_df))

Resultado:

Original DataFrame
    Name  Age  Marks  Roll_no
0   John   20     45       78
1  Peter   21     62       68
2   Scot   25     68       95

Modified DataFrame
    Name  Age  Roll_no  Marks
0   John   20       45     78
1  Peter   21       62     68
2   Scot   25       68     95

A vantagem mais significativa deste método é que você pode especificar quantas colunas quiser. É bastante útil quando é necessário renomear colunas específicas e, ao contrário dos métodos anteriores, não é necessário listar toda a lista de colunas para o DataFrame.

Você pode notar que no DataFrame.rename() chamada de função, especificamos o parâmetro inplace como True. O parâmetro inplace é, por padrão, False e determina se devemos retornar um novo pandas DataFrame ou não.

Especificá-lo como True significa que a chamada de função não retorna um novo pandas DataFrame, mas muda o DataFrame existente no lugar.

Renomear colunas em Pandas DataFrame utilizando DataFrame.set_axis() Método

Outro método conveniente para renomear colunas de pandas DataFrame. Temos que especificar toda a lista de colunas enquanto utilizamos este método.

import pandas as pd

example_df = pd.DataFrame([['John', 20, 45, 78], 
                           ['Peter', 21, 62, 68], 
                           ['Scot', 25, 68, 95]],
                           index=[0, 1, 2], 
                           columns=['Name', 'Age', 'Marks','Roll_no'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(example_df))

example_df.set_axis(['Name', 'Age', 'Roll_no','Marks'], 
                    axis='columns', inplace=True)

print"\nModified DataFrame"
print(pd.DataFrame(example_df))

Resultado:

Original DataFrame
    Name  Age  Marks  Roll_no
0   John   20     45       78
1  Peter   21     62       68
2   Scot   25     68       95

Modified DataFrame
    Name  Age  Roll_no  Marks
0   John   20       45     78
1  Peter   21       62     68
2   Scot   25       68     95

Artigo relacionado - Pandas DataFrame