Dado um DataFrame pandas, vamos ver como alterar seus nomes de coluna e índices de linha.
Sobre o DataFrame pandas
Os DataFrame pandas são grades retangulares usadas para armazenar dados. É fácil visualizar e trabalhar com dados quando armazenados em dataFrame.
- Consiste em linhas e colunas.
- Cada linha é uma medida de alguma instância, enquanto a coluna é um vetor que contém dados para algum atributo/variável específico.
- Cada coluna de dataframe tem dados homogêneos em qualquer coluna específica, mas as linhas de dataframe podem conter dados homogêneos ou heterogêneos em qualquer linha específica.
- Ao contrário da matriz bidimensional, os eixos do dataframe do pandas são rotulados.
O tipo Dataframe do Pandas tem dois atributos chamados "columns" e "index" que podem ser usados para alterar os nomes das colunas, bem como os índices das linhas.
Crie um DataFrame usando um dicionário.
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) print(df)
Saída:
Nome Idade 0 Tom 15 1 Nick 26 2 John 17 3 Peter 28
Método #1: Alterar o nome da coluna e o índice da linha usando os atributo df.columns
e df.index
respectivamente.
Para alterar os nomes das colunas, fornecemos uma lista python contendo os nomes das colunasparra o atributo df.columns
. Exemplo: df.columns = ['First_col', 'Second_col', 'Third_col', .....]
.
Para alterar os índices de linha, também fornecemos uma lista python para o atributo df.index
. Exemplo: df.index = ['row1', 'row2', 'row3', ......]
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) # Muda o nome das colunas df.columns = ['Coluna_1', 'Coluna_2'] # Muda o nome dos index df.index = ['Lina_1', 'Linha_2', 'Linha_3', 'Linha_4'] print(df)
Saída:
Coluna_1 Coluna_2 Lina_1 Tom 15 Linha_2 Nick 26 Linha_3 John 17 Linha_4 Peter 28
Método #2: Usando a função rename()
com dicionário para alterar uma única coluna
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) # Alterar o nome da coluna 'Nome' para 'Coluna_1' df = df.rename(columns={"Nome":"Coluna_1"}) print(df)
Saída:
Coluna_1 Idade 0 Tom 15 1 Nick 26 2 John 17 3 Peter 28
Alterar vários nomes de coluna simultaneamente:
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) # Alterar o nome da coluna 'Nome' para 'Coluna_1' # e alterando o nome da coluna 'Idade' para 'Coluna_2' df = df.rename({"Nome":"Coluna_1","Idade":"Coluna_2"}, axis='columns') print(df)
Saída:
Coluna_1 Coluna_2 0 Tom 15 1 Nick 26 2 John 17 3 Peter 28
Método #3: Usando a função Lambda para renomear as colunas.
Uma função lambda é uma pequena função anônima que pode receber qualquer número de argumentos, mas pode ter apenas uma expressão. Usando a função lambda, podemos modificar todos os nomes das colunas de uma vez. Vamos adicionar 'x' no final de cada nome de coluna usando a função lambda
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) # Renomeando colunas usando uma função lambda # Adiciona '_x' ao final do nome de cada coluna df = df.rename(columns=lambda x: x+'_x') print(df)
Saída:
Nome_x Idade_x 0 Tom 15 1 Nick 26 2 John 17 3 Peter 28
Método #4: Usando o atributo values
para renomear as colunas.
Podemos usar o atributo values
diretamente na coluna cujo nome queremos alterar.
import pandas as pd df = pd.DataFrame({ "Nome": ['Tom', 'Nick', 'John', 'Peter'], "Idade": [15, 26, 17, 28] }) df.columns.values[1] = 'Estudantes_Idade' print(df)
Saída:
Nome Estudantes_Idade 0 Tom 15 1 Nick 26 2 John 17 3 Peter 28
Vamos mudar o índice da linha usando a função Lambda.
import pandas as pd df = pd.DataFrame({ "A": ['Tom', 'Nick', 'John', 'Peter'], "B": [25, 16, 27, 18] }) # isto aumentará o valor do índice da linha em 10 para cada linha df = df.rename(index=lambda x: x + 10) print(df)
Saída:
A B 10 Tom 25 11 Nick 16 12 John 27 13 Peter 18
Agora, se quisermos alterar os índices de linha e nomes de coluna simultaneamente, isso pode ser feito usando a função rename()
e passando o atributo de coluna e índice como o parâmetro.
import pandas as pd df = pd.DataFrame({ "A": ['Tom', 'Nick', 'John', 'Peter'], "B": [25, 16, 27, 18] }) df = df.rename(index=lambda x: x + 5, columns=lambda x: x + 'x') print(df)
Saída:
import pandas as pd df = pd.DataFrame({ "A": ['Tom', 'Nick', 'John', 'Peter'], "B": [25, 16, 27, 18] }) df = df.rename(index=lambda x: x + 5, columns=lambda x: x + 'x') print(df)
Artigo escrito por Shubham__Ranjan e traduzido por Acervolima de Python | Change column names and row indexes in Pandas DataFrame.
0 comentários:
Postar um comentário