Fonction df.rename() de Pandas

Pandas 常用函数Fonctions Pandas courantes


df.rename()est une fonction de Pandas utilisée pour renommer les noms de colonnes ou l’index d’un DataFrame.

Dans l’analyse de données, des noms de colonnes et des index clairs sont très importants pour la lisibilité et la maintenabilité du code.rename()Il permet de modifier de manière flexible les noms de colonnes et les noms d’index, ce qui rend les données plus standardisées et plus faciles à comprendre. Cela est particulièrement utile lors de l’importation, du nettoyage et de la génération de rapports.


Syntaxe de base et paramètres

rename()est une fonction membre de DataFrame, appelée via l'opérateur point.pour l'invoquer.

Format de syntaxe

DataFrame.rename(mapper=None, index=None, columns=None, axis=None, inplace=False, errors='ignore')

Description des paramètres

Paramètre Type Requis Description Valeur par défaut
mapper dict ou fonction Optional Règles de mappage pour renommer un axe (index de lignes ou noms de colonnes). Peut être un dictionnaire ou une fonction. Utilisé avec leaxisparamètre. Aucune
index dict ou fonction Optional Spécifiez directement les règles de renommage pour l'index des lignes. Prédomine surmapperetaxis。 Aucune
columns dict ou fonction Optional Spécifiez directement les règles de renommage pour les noms de colonnes. Prédomine surmapperetaxis。 Aucune
axis int ou str Optional Spécifie l'axe à renommer.0ou'index'représente l'index des lignes;1ou'columns'représente les noms de colonnes. Aucune
inplace bool Optional Si défini surTrue, il modifie directement le DataFrame d'origine et ne renvoie aucun nouvel objet; s'il est défini surFalse, un nouveau DataFrame est renvoyé, et les données d'origine restent inchangées. False
errors str Optional Contrôle la gestion des erreurs.'raise'signifie qu'une exception est levée lorsque la clé correspondante n'est pas trouvée;'ignore'signifie que les clés inexistantes sont ignorées. 'ignore'

Description de la valeur de retour

  • Renvoie un nouveau DataFrame (siinplace=False), ouNone(siinplace=True)。
  • Dans le DataFrame renvoyé, les noms de colonnes ou l'index ont été renommés.

Exemples

Maîtrisons à fond à travers une série d'exemplesrename()l'utilisation de.

Exemple 1: Renommer les noms de colonnes

Utilisez lacolumnsparamètre pour renommer facilement les noms de colonnes.

Exemple

import pandas as pd

# Créer un DataFrame
data = {
    'name': ['Zhang San', 'Li Si', 'Wang Wu'],
    'age': [25, 30, 35],
    'salary': [5000, 6000, 7000]
}
df = pd.DataFrame(data)

print("Données d'origine :")
print(df)
print("=" * 50)

# Utiliser un dictionnaire pour renommer les noms de colonnes
df_renamed = df.rename(columns={
    'name': 'Name',
    'age': 'age',
    'salary': 'Salary'
})

print("Données après renommage des noms de colonnes :")
print(df_renamed)

Sortie attendue :

原始数据:
   name  age  salary
0  张三   25   5000
1  李四   30   6000
2  王五   35   7000
==================================================
重命名列名后的数据:
    姓名  年龄   薪资
0  张三   25  5000
1  李四   30  6000
2  王五   35  7000

Explication du code :

  1. Les noms de colonnes des données d'origine sont en anglais, et nous utilisons un dictionnaire pour les renommer en chinois.
  2. En utilisant lacolumnsle paramètre n'affecte que les noms de colonnes, pas l'index des lignes.
  3. Il s'agit d'une opération courante de normalisation de données.

Exemple 2: Renommer l'index des lignes

Utilisez laindexparamètre pour renommer l'index des lignes.

Exemple

import pandas as pd

# Créer un DataFrame avec un index par défaut
data = {
    Fruit: [Pomme, Banane, Orange],
    'Quantity': [10, 20, 15]
}
df = pd.DataFrame(data)

print("Données originales (index par défaut):")
print(df)
print("=" * 50)

# Utiliser un dictionnaire pour renommer l'index des lignes
df_renamed = df.rename(index={
    0: 'Première ligne',
    1: 'Deuxième ligne',
    2: 'Troisième ligne'
})

print("Données après renommage de l'index des lignes:")
print(df_renamed)

Sortie attendue :

原始数据(默认索引):
   水果  数量
0  苹果  10
1  香蕉  20
2  橙子  15
==================================================
重命名行索引后的数据:
     水果  数量
第一行   苹果  10
第二行   香蕉  20
第三行   橙子  15

Explication du code :

  • L'index des lignes des données d'origine est composé de nombres comme 0, 1, 2.
  • En utilisant laindexparamètre peut les renommer pour leur donner des noms plus significatifs.
  • Ceci est particulièrement utile lors de la génération de rapports.
  • Exemple 3: Renommer à la fois les noms de colonnes et l'index des lignes

    Il peut renommer les noms de colonnes et l'index des lignes en même temps.

    Exemple

    import pandas as pd

    # Créer un DataFrame
    data = {
        'A': [1, 2, 3],
        'B': [4, 5, 6]
    }
    df = pd.DataFrame(data, index=['x', 'y', 'z'])

    print("Données d'origine :")
    print(df)
    print("=" * 50)

    # Renommer à la fois les noms de colonnes et l'index des lignes
    df_renamed = df.rename(columns={'A': Column A, 'B': Column B}, index={'x': Row X, 'y': Row Y, 'z': Row Z})

    print("Données après renommage:")
    print(df_renamed)

    Sortie attendue :

    原始数据:
       A  B
    x  1  4
    y  2  5
    z  3  6
    ==================================================
    重命名后的数据:
        列A  列B
    行X   1   4
    行Y   2   5
    行Z   3   6
    

    Explication du code :

    • Vous pouvez utiliser les deuxcolumnsetindexparamètres.
    • C'est très pratique lors de l'importation et de la normalisation des données.
    • Exemple 4 : Utilisation d'une fonction pour renommer

      rename()Il accepte également une fonction comme paramètre, ce qui permet la transformation par lots des noms de colonnes ou de l'index.

      Exemple

      import pandas as pd

      # Créer un DataFrame avec des noms de colonnes relativement complexes
      data = {
          'USER_NAME': ['Zhang San', 'Li Si'],
          'USER_AGE': [25, 30],
          'USER_SALARY': [5000, 6000]
      }
      df = pd.DataFrame(data)

      print("Données d'origine :")
      print(df)
      print("=" * 50)

      # Utiliser une fonction pour convertir les noms de colonnes en minuscules
      df_lower = df.rename(columns=str.lower)

      print("Après conversion des noms de colonnes en minuscules :")
      print(df_lower)
      print("=" * 50)

      # Utiliser une fonction pour supprimer le préfixe (par ex., USER_)
      df_clean = df.rename(columns=lambda x: x.replace('USER_', ''))

      print("Après suppression du préfixe :")
      print(df_clean)
      print("=" * 50)

      # Utiliser une fonction pour ajouter un préfixe
      df_prefix = df.rename(columns=lambda x: 'col_' + x)

      print("Après ajout du préfixe :")
      print(df_prefix)

      Sortie attendue :

      原始数据:
        USER_NAME  USER_AGE  USER_SALARY
      0       张三       25       5000
      1       李四       30       6000
      列名转小写后:
        user_name  user_age  user_salary
      0       张三       25       数据清洗
      1       李四       30       6000
      ==================================================
      去除前缀后:
        NAME  AGE  SALARY
      0  张三   25  5000
      1  李四   30  6000
      

      Explication du code :

      • str.lowerest la méthode de mise en minuscules pour les chaînes de caractères.
      • Utilisationlambdales fonctions peuvent gérer de manière flexible des règles de nommage complexes.
      • Cette méthode convient au traitement par lots d'un grand nombre de noms de colonnes.
      • Exemple 5 : Utilisation du paramètre inplace pour une modification en place

        Utiliserinplace=Truepour modifier directement le DataFrame d'origine sans renvoyer un nouvel objet.

        Exemple

        import pandas as pd

        # Créer un DataFrame
        data = {
            'name': ['Zhang San', 'Li Si'],
            'age': [25, 30]
        }
        df = pd.DataFrame(data)

        print("Données d'origine :")
        print(df)
        print(f"ID des données d'origine : {id(df)}")
        print("=" * 50)

        # Utiliser inplace=True pour modifier sur place
        df.rename(columns={'name': 'Name', 'age': 'age'}, inplace=True)

        print("Données après modification avec inplace=True :")
        print(df)
        print(f"ID des données modifiées : {id(df)}")

        Sortie attendue :

        原始数据:
           name  age
        0  张三   25
        1  李四   30
        原始数据 id: 140234567890
        ==================================================
        使用 inplace=True 修改后的数据:
            姓名  年龄
        0  张三   25
        1  李四   30
        修改后数据 id: 140234567890  # 同一个对象
        

        Explication du code :

        • Utilisationinplace=Trueaprès, l'adresse mémoire (id) du DataFrame reste inchangée, ce qui indique une modification sur place.
        • Cette méthode peut économiser de la mémoire, en particulier lorsqu'on travaille avec de grands jeux de données.
        • Exemple 6 : Gestion des noms de colonnes inexistants

          Utilisez laerrorsparamètre pour contrôler le comportement lorsque les noms de colonnes n'existent pas.

          Exemple

          import pandas as pd

          # Créer un DataFrame
          data = {
              'A': [1, 2, 3],
              'B': [4, 5, 6]
          }
          df = pd.DataFrame(data)

          print("Données d'origine :")
          print(df)
          print("=" * 50)

          # Tentative de renommer une colonne inexistante, en utilisant errors='ignore' (par défaut)
          df_renamed = df.rename(columns={'C': 'C_new'})  # La colonne C n'existe pas

          print("Renommage d'une colonne inexistante (C) avec le comportement par défaut :")
          print(df_renamed)  # Aucun changement ne se produira
          print("=" * 50)

          # Tentative de renommer une colonne inexistante, en utilisant errors='raise'
          try:
              df_renamed2 = df.rename(columns={'C': 'C_new'}, errors='raise')
          except KeyError as e:
              print(f"Exception levée : {e}")

          Sortie attendue :

          原始数据:
             A  B
          0  1  4
          1  2  5
          2  3  6
          ==================================================
          重命名不存在的列(C),使用默认行为:
             A  B
          0  1  4
          1  2  5
          2  3  6  # 无变化
          ==================================================errors
          ==================================================
          抛出异常: 'C'
          

          Explication du code :

          • Par défaut (errors='ignore'), si une colonne n'existe pas, aucun changement ne se produira et aucune erreur ne sera levée.
          • Si défini surerrors='raise', une exception sera levée.KeyErrorexception.
          • Exemple 7 : Utilisation du paramètre axis

            UtiliseraxisLe paramètre permet une spécification plus flexible des axes à renommer.

            Exemple

            import pandas as pd

            # Créer un DataFrame
            data = {
                'col1': [1, 2, 3],
                'col2': [4, 5, 6]
            }
            df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])

            print("Données d'origine :")
            print(df)
            print("=" * 50)

            # Utiliser axis='columns' pour renommer les colonnes
            df_renamed_cols = df.rename({'col1': 'First column', 'col2': 'Second column'}, axis='columns')

            print("After renaming columns with axis='columns':")
            print(df_renamed_cols)
            print("=" * 50)

            # Utiliser axis='index' pour renommer l'index des lignes
            df_renamed_idx = df.rename({'row1': 'Première ligne', 'row2': 'Deuxième ligne', 'row3': 'Troisième ligne'}, axis='index')

            print("Après avoir renommé les lignes avec axis='index' :")
            print(df_renamed_idx)

            Sortie attendue :

            原始数据:
                  col1  col2
            row1     1     4
            row2     2     5
            row3     3     6
            ==================================================
            使用 axis='columns' 重命名列后:
                  第一列  第二列
            row1     1     4
            row2     2     5
            row3     3     6
            

            Explication du code :

            • axis='columns'ouaxis=1Signifie opérer sur les colonnes.
            • axis='index'ouaxis=0Signifie opérer sur les indices de lignes.
            • Cette syntaxe est cohérente avec le style de NumPy.

            • Notes

              • rename()Par défaut, le DataFrame d'origine n'est pas modifié. Pour le modifier sur place, utilisezinplace=Trueparamètre.
              • Il est préférable d'utilisercolumnsetindexle paramètre au lieu demapperetaxis, car le premier est plus clair et plus facile à comprendre.
              • Lorsque vous utilisez une fonction pour renommer, assurez-vous que la fonction renvoie un type chaîne de caractères, sinon cela peut provoquer des erreurs.
              • Lorsque vous travaillez avec de grands ensembles de données, l'utilisation deinplace=Truepeut économiser de la mémoire.
              • Avant de renommer, il est recommandé de vérifier les noms de colonnes actuels. Vous pouvez utiliserdf.columnspour les afficher.

              Pandas 常用函数Fonctions courantes de Pandas

              Autres extensions