Como Renomear Colunas em Pandas DataFrame

Puneet Dobhal 30 janeiro 2023
  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