Je cherchais un moyen élégant de changer un nom de colonne spécifié dans a DataFrame
.
lire les données ...
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)
La solution la plus élégante que j'ai trouvée jusqu'à présent ...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
J'espérais un simple vol simple ... cette tentative a échoué ...
df.columns[df.columns.tolist().index('one')] = 'another_name'
Tous les indices reçus avec reconnaissance.
Puisque l'
inplace
argument est disponible, vous n'avez pas besoin de copier et d'assigner le bloc de données d'origine à lui-même, mais procédez comme suit:la source
Qu'en est-il de?
la source
df['new_name']
(et d'autres choses pandas) après avoir changé les variables comme indiqué ci-dessus. Votre commentaire était peut-être valide lors de sa publication initiale.rename
méthodes est une meilleure solution.Pandas 0.21 a maintenant un paramètre d'axe
La méthode de renommage a gagné un paramètre d'axe pour correspondre à la plupart des autres API de pandas.
Donc, en plus de cela:
Tu peux faire:
ou
la source
pd.__version__
pour vérifier votre versionSi vous savez de quelle colonne il s'agit (première / seconde / nième), cette solution publiée sur une question similaire fonctionne, qu'elle soit nommée ou non, et sur une seule ligne: https://stackoverflow.com/a/26336314/ 4355695
la source
Pour renommer les colonnes, voici la méthode simple qui fonctionnera à la fois pour
Default(0,1,2,etc;)
les colonnes existantes et pas très utile pour des ensembles de données plus volumineux (ayant de nombreuses colonnes).Pour un ensemble de données plus important, nous pouvons découper les colonnes dont nous avons besoin et appliquer le code ci-dessous:
la source
Le code court suivant peut vous aider:
Supprimez les espaces des colonnes.
la source
AttributeError: 'int' object has no attribute 'replace'
vous en dire plus.pandas version 0.23.4
Pour mémoire:
la source
Une autre option serait de simplement copier et déposer la colonne:
Après cela, vous obtenez le résultat:
la source