Como alterar os nomes das colunas e índices de linha no Pandas?
Uma das operações mais comuns que alguém pode fazer ao limpar os dados ou fazer uma análise exploratória de dados na ciência de dados é manipular / corrigir os nomes das colunas ou das linhas.
Nesta postagem, veremos
- Como renomear colunas do dataframe do pandas?
- Como alterar os nomes ou índices das linhas de um dataframe do pandas?
Vamos primeiro carregar o pandas.
# import pandas>import pandas as pd
Vamos usar os dados do gapminder do site de carpintaria de software.
# link to gapminder datadata_url = "http://bit.ly/2cLzoxH"# read data from url as pandas dataframe>gapminder = pd.read_csv(data_url)
vamos verificar os nomes das colunas do dataframe, as três primeiras linhas dos dados, usando a função head.
>print(gapminder.head(3)) country year pop continent lifeExp gdpPercap0 Afghanistan 1952 8425333 Asia 28.801 779.4453141 Afghanistan 1957 9240934 Asia 30.332 820.8530302 Afghanistan 1962 10267083 Asia 31.997 853.100710
Também podemos usar a função de colunas para obter os nomes das colunas.
>gapminder.columnsIndex(, dtype="object")
Como renomear colunas em Pandas?
Um pode mudar os nomes das colunas de um pandas dataframe de pelo menos duas maneiras. Uma maneira de renomear colunas no Pandas é usar df.columns do Pandas e atribuir novos nomes diretamente.
Por exemplo, se você tiver os nomes das colunas em uma lista, poderá atribuir a lista aos nomes das colunas diretamente.
Para alterar as colunas do dataframe de gapminder, podemos atribuir a lista de novos nomes de colunas a gapminder.columns como
>gapminder.columns =
Isso atribuirá os nomes na lista como nomes de coluna para o quadro de dados “gapminder”. Podemos verificar o quadro de dados para ver se ele tem novos nomes de coluna usando a função head ().
>gapminder.head(3) country year population continent life_exp gdp_per_cap0 Afghanistan 1952 8425333 Asia 28.801 779.4453141 Afghanistan 1957 9240934 Asia 30.332 820.8530302 Afghanistan 1962 10267083 Asia 31.997 853.100710
Um problema com esta abordagem para alterar os nomes das colunas é que é preciso alterar os nomes de todas as colunas no quadro de dados. Esta abordagem não funcionaria, se quisermos alterar apenas o nome de uma coluna.
Função de renomeação do Pandas para Renomear colunas
Outra maneira de alterar os nomes das colunas no pandas é usar a função de renomeação. Usar renomear para alterar os nomes das colunas é uma maneira muito melhor do que antes. Alguém pode cantar nomes ge de colunas específicas facilmente. E nem todos os nomes das colunas precisam ser alterados.
Para alterar os nomes das colunas usando a função renomear no Pandas, é necessário especificar um mapeador, um dicionário com o nome antigo como chaves e o novo nome como valores. Aqui está um exemplo para alterar muitos nomes de coluna usando um dicionário. Também usaremos inplace = True para alterar os nomes das colunas no local.
Uma das maiores vantagens de usar a função renomear é que podemos usar renomear para alterar quantos nomes de coluna quisermos.
Vamos mudar o nome de uma única coluna.
A função de renomeação do Pandas também pode ter uma função como entrada em vez de um dicionário. Por exemplo, podemos escrever uma função lambda para obter os nomes das colunas atuais e considerar apenas os três primeiros caracteres para os novos nomes das colunas.
Como alterar e nomes / índices de linha em Pandas?
Outra coisa boa sobre a função de renomeação do pandas é que, também podemos usá-la para alterar os índices de linha ou nomes de linha.
Só precisamos usar o argumento de índice e especificar, queremos altere o índice, não as colunas.
Por exemplo, para alterar os nomes de linha 0 e 1 para ‘zero’ e ‘um’ em nosso dataframe gapminder, construiremos um dicionário com nomes de índice de linha antigos como chaves e uma nova linha indexar como valores.
Podemos ver que apenas as duas primeiras linhas têm novos nomes como pretendíamos.
Como alterar nomes de colunas e índices de linhas simultaneamente no Pandas?
Com a função renomear do pandas, também é possível alterar os nomes das colunas e das linhas simultaneamente usando os argumentos da coluna e do índice para renomear a função com os dicionários mapeadores correspondentes.
Vamos alterar o nome da coluna “lifeExp” para “exp_ vida” e também índices de linha “0 & 1” para “zero e um”.
Você é novo no Pandas? E começando com o Pandas recentemente? Confira nossos novos tutoriais Byte Sized Pandas 101.