Eu estava procurando uma maneira elegante de alterar um nome de coluna especificado em a DataFrame
.
reproduzir dados ...
import pandas as pd
d = {
'one': [1, 2, 3, 4, 5],
'two': [9, 8, 7, 6, 5],
'three': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
A solução mais elegante que encontrei até agora ...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
Eu estava esperando por uma linha simples ... essa tentativa falhou ...
df.columns[df.columns.tolist().index('one')] = 'another_name'
Quaisquer dicas recebidas com gratidão.
Como o
inplace
argumento está disponível, você não precisa copiar e atribuir o quadro de dados original a si próprio, mas faça o seguinte:fonte
A respeito?
fonte
df['new_name']
(e outras coisas de pandas) após alterar as variáveis, conforme descrito acima. Seu comentário pode ter sido válido quando foi publicado originalmente.rename
métodos é uma solução melhor.O Pandas 0.21 agora tem um parâmetro de eixo
O método de renomeação ganhou um parâmetro de eixo para corresponder à maioria do restante da API do pandas.
Então, além disso:
Você pode fazer:
ou
fonte
pd.__version__
para verificar sua versãoSe você souber qual coluna # é (primeiro / segundo / enésimo), essa solução postada em uma pergunta semelhante funcionará independentemente de ser nomeada ou não, e em uma linha: https://stackoverflow.com/a/26336314/ 4355695
fonte
Para renomear as colunas, aqui está a simples que funcionará para
Default(0,1,2,etc;)
as colunas existente e existente, mas não muito útil para conjuntos de dados maiores (com muitas colunas).Para um conjunto de dados maior, podemos dividir as colunas necessárias e aplicar o código abaixo:
fonte
O código curto a seguir pode ajudar:
Remova espaços das colunas.
fonte
AttributeError: 'int' object has no attribute 'replace'
você expandir isso.pandas versão 0.23.4
Para o registro:
fonte
Outra opção seria simplesmente copiar e soltar a coluna:
Depois disso, você obtém o resultado:
fonte