Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 26 juin 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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()
image 230

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()
image 231

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 :

image 232

Mais les noms de colonne du dataframe d'origine df ne changez pas:

df.head()
image 233

É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:

renommer-les-colonnes-des-pandas

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:

image 234

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()
renommer-les-colonnes-des-pandas

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()
renommer-les-colonnes-des-pandas

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()
image 232

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()
renommer-les-colonnes-des-pandas

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 colonnes df.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}) De mapping fait référence au mappage des anciens noms de colonne vers les nouveaux noms de colonne. Vous pouvez également utiliser le rename() 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 utiliser df.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 C
    Auteur
    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
    Éditeur

    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
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder