Renommer des colonnes dans un dataframe pandas est une opération courante. Apprenez les quatre méthodes différentes pour renommer les colonnes pandas.
Pandas est une bibliothèque Python populaire pour l'analyse de données. Les données que nous devons analyser sont souvent disponibles dans différents formats, notamment les fichiers csv et tsv, les bases de données relationnelles, etc. Et vous devez effectuer quelques vérifications préliminaires sur les données, gérer les valeurs manquantes et préparer les données pour une analyse plus approfondie.
Avec les pandas, vous pouvez :
- Ingérer des données provenant de diverses sources
- Explorer l'ensemble de données et gérer les valeurs manquantes qu'il contient
- Analyser l'ensemble de données pour obtenir des informations
Pour tous les projets d'analyse de données, vous créerez souvent des blocs de données à partir de structures de données Python telles qu'un dictionnaire. Ou vous lirez des données provenant d'autres sources, telles qu'un fichier csv dans une trame de données.
La trame de données est la structure de données de base dans les pandas. Il contient les enregistrements le long des lignes et les divers champs ou attributs le long des colonnes.
Cependant, vous devrez peut-être renommer les noms de colonne pour les rendre plus descriptifs et améliorer la lisibilité. Ici, vous apprendrez quatre façons différentes de renommer des colonnes. Commençons!
Créer un DataFrame Pandas
Vous pouvez suivre le didacticiel dans un Carnet Jupyter environnement avec des pandas installés. Ou vous pouvez suivre Google Colab.
D'abord, nous allons créer une base de données pandas et travaillez avec pour le reste du didacticiel.
Voici un dictionnaire book_dict
:
books_dict = {
"one": [
"Atomic Habits",
"His Dark Materials",
"The Midnight Library",
"The Broken Earth",
"Anxious People",
],
"two": [
"James Clear",
"Philip Pullman",
"Matt Haig",
"N.K.Jemisin",
"Fredrik Backman",
],
"three": ["Nonfiction", "Fantasy", "Magical Realism", "Fantasy", "Fiction"],
"four": [4, 5, 3, 5, 4],
}
Nous allons d'abord importer des pandas, puis créer un dataframe df
à partir de books_dict
.
import pandas as pd
Notes: Nous continuerons à revenir à la cellule de code suivante — pour créer une version initiale de la trame de données — avant de renommer les colonnes.
df = pd.DataFrame(books_dict)
Nous pouvons utiliser df.head()
pour obtenir les premières lignes du dataframe df
. Par défaut, il renvoie les cinq premières lignes. Ici le df
n'a que cinq rangées ; donc lors de l'utilisation df.head()
nous obtenons l'intégralité de la trame de données.
df.head()

On voit que les noms de colonnes sont actuellement les clés du dictionnaire. Mais ce n'est pas très descriptif. Alors renommez-les ! 👩🏫
Méthodes pour renommer les colonnes dans Pandas
Voyons maintenant les différentes méthodes pour renommer les colonnes dans les pandas :
- Réglage
columns
attribut du dataframe à la liste des nouveaux noms de colonnes - Utilisation de la méthode rename() sur le dataframe
- Utiliser str.replace pour renommer une ou plusieurs colonnes
- Le
set_axis()
méthode sur la trame de données
Setting the columns Attribute
Pour toute trame de données, le columns
L'attribut contient la liste des noms de colonnes :
df.columns
# Index(['one', 'two', 'three', 'four'], dtype='object')
Renommez les colonnes pour indiquer ce que chaque champ représente, puis appelez df.head()
pour voir les résultats :
df.columns = ['Title','Author','Genre','Rating']
df.head()

Using the rename() Method
Pour renommer les colonnes dans les pandas, vous pouvez utiliser le rename()
méthode avec la syntaxe :
df.rename(column={mapping})
Ce mappage peut être un dictionnaire de la forme suivante :
{'old_col_name_1':'new_col_name_1', 'old_col_name_2':'new_col_name_2',...,
'old_col_name_n':'new_col_name_n'}
Créons df
du books_dict
dictionnaire:
df = pd.DataFrame(books_dict)
Le rename()
méthode avec la syntaxe ci-dessus, nous obtenons df_1
. Qui est une copie de la trame de données avec les colonnes renommées.
df_1 = df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'})
df_1.head()
Ainsi, les noms de colonne de df_1
sont modifiés :

Mais les noms de colonne du dataframe d'origine df
ne changez pas:
df.head()

Étant donné que cette méthode nous permet de fournir un mappage entre l'ancien et le nouveau nom de colonne, nous pouvons l'utiliser pour renommer à la fois des colonnes simples et multiples.
Renommer les colonnes en place
Que faire si vous souhaitez modifier le bloc de données existant, sans créer de nouvelle copie ?
Pour ce faire, vous pouvez définir inplace
égal à True
dans l'appel de méthode.
df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'},inplace=True)
df.head()
Cela renommera les colonnes du dataframe d'origine df
:

Jusqu'à présent, nous avons vu comment :
- Renommer les colonnes en fournissant un dictionnaire qui mappe les anciens noms de colonne aux nouveaux noms de colonne
- Renommer les colonnes en place sans créer de nouveau dataframe
Vous pouvez également utiliser la méthode de renommage d'une autre manière.
Une autre approche pour renommer les colonnes
Renommez les colonnes pour qu'elles soient en majuscules :
df = pd.DataFrame(books_dict)
df.columns = ['TITLE','AUTHOR','GENRE','RATING']
df.head()
La trame de données df
ressemble maintenant à ceci:

Supposons que nous voulions changer chacun de ces noms de colonne pour qu'ils soient dans la casse du titre. Au lieu de fournir un dictionnaire pour chaque nom de colonne, nous pouvons spécifier un appel de fonction ou de méthode sur un objet comme indiqué :
df.rename(str.title,axis='columns',inplace=True)
df.head()

Ici, nous fixons axis
à 'columns'
et utilise str.title
pour convertir tous les noms de colonne en casse de titre.
Using str.replace() on the Column Name Strings
Comme toujours, exécutez la cellule de code suivante pour créer le dataframe à partir du dictionnaire :
df = pd.DataFrame(books_dict)
En Python, vous auriez utilisé le replace()
méthode avec la syntaxe str.replace(this, with_this)
pour obtenir un copier d'une chaîne avec les modifications requises. Voici un exemple :
>>> str1 = 'Marathon'
>>> str1.replace('Mara','Py')
'Python'
Vous savez que l'attribut columns contient une liste de chaînes contenant les noms des colonnes. Vous pouvez donc appeler str.replace('old_column_name','new_column_name')
ainsi:
df.columns = df.columns.str.replace('one','Title')
df.head()

Ici, nous n'avons renommé que la colonne "un" en "Titre", de sorte que les autres noms de colonne restent inchangés.
Renommez maintenant les autres colonnes en utilisant la même approche :
df.columns = df.columns.str.replace('two','Author')
df.columns = df.columns.str.replace('three','Genre')
df.columns = df.columns.str.replace('four','Rating')
df.head()

Cette méthode de renommage des colonnes est utile lorsque vous devez renommer une seule colonne ou un petit sous-ensemble de colonnes.
Using the set_axis() Method
Revenons à la version initiale d'un dataframe :
df = pd.DataFrame(books_dict)
Vous pouvez également utiliser la set_axis()
méthode pour renommer les colonnes. La syntaxe est la suivante :
df.set_axis([list_of_column_names],axis='columns')
Par défaut, le set_axis()
La méthode renvoie la copie de la trame de données. Mais si vous souhaitez modifier le dataframe en place, vous pouvez définir copy
à False
.
df = df.set_axis(['Title','Author','Genre','Rating'],axis='columns',copy=False)
df.head()

Conclusion
Voici un aperçu des différentes méthodes pour renommer les colonnes dans une dataframe pandas :
- Pour un exemple de dataframe
df
, l'attribut colonnesdf.columns
est la liste des noms de colonnes. Pour renommer les colonnes, vous pouvez définir cet attribut sur la liste des nouveaux noms de colonne. - Les
rename()
méthode pour renommer les colonnes fonctionne avec la syntaxe :df.rename(columns={mapping})
Demapping
fait référence au mappage des anciens noms de colonne vers les nouveaux noms de colonne. Vous pouvez également utiliser lerename()
méthode en spécifiant une fonction à appliquer à tous les noms de colonnes :df.rename(function or method call, axis='columns')
. - Juste la façon dont vous utilisez le
replace()
méthode sur une chaîne Python, vous pouvez utiliserdf.columns.str.replace('old_column_name', 'new_column_name')
pour remplacer les noms de colonnes. - Une autre approche pour renommer les colonnes consiste à utiliser la méthode set_axis avec la syntaxe :
df.set_axis(list_of_col_names,axis='columns')
.
C'est tout pour ce tutoriel ! Consultez la liste des cahiers collaboratifs pour l'analyse de données.
-
Bala Priya est un développeur et rédacteur technique indien avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, etc. lire la suite
-
Narendra Mohan Mittal est stratège principal en stratégie de marque numérique et éditeur de contenu avec plus de 12 ans d'expérience polyvalente. Il est titulaire d'un M-Tech (médaillé d'or) et d'un B-Tech (médaillé d'or) en informatique et ingénierie.
... lire la suite