Pandas df.rename()-Funktion

Pandas 常用函数Häufige Pandas-Funktionen


df.rename()ist eine Funktion in Pandas, die verwendet wird, um die Spaltennamen oder den Index eines DataFrame umzubenennen.

In der Datenanalyse sind klare Spaltennamen und Indizes sehr wichtig für die Lesbarkeit und Wartbarkeit des Codes.rename()Sie ermöglicht es Ihnen, Spaltennamen und Indexnamen flexibel zu ändern, wodurch die Daten standardisierter und leichter verständlich werden. Dies ist besonders nützlich beim Datenimport, bei der Bereinigung und bei der Berichterstellung.


Grundlegende Syntax und Parameter

rename()ist eine Memberfunktion von DataFrame, die über den Punktoperator aufgerufen wird.zum Aufrufen.

Syntaxformat

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

Parameterbeschreibung

Parameter Type Erforderlich Beschreibung Standardwert
mapper dict oder Funktion Optional Zuordnungsregeln zum Umbenennen einer Achse (Zeilenindex oder Spaltennamen). Kann ein Wörterbuch oder eine Funktion sein. Wird zusammen mit demaxisParameter überschrieben werden. Keine
index dict oder Funktion Optional Direkte Angabe von Umbenennungsregeln für den Zeilenindex. Hat Vorrang vormapperundaxis。 Keine
columns dict oder Funktion Optional Direkte Angabe von Umbenennungsregeln für Spaltennamen. Hat Vorrang vormapperundaxis。 Keine
axis int oder str Optional Gibt die umzubenennende Achse an.0oder'index'steht für den Zeilenindex;1oder'columns'steht für Spaltennamen. Keine
inplace bool Optional Wenn festgelegt aufTrue, ändert es das ursprüngliche DataFrame direkt und gibt kein neues Objekt zurück; wenn aufFalse, wird ein neues DataFrame zurückgegeben, und die ursprünglichen Daten bleiben unverändert. False
errors str Optional Steuert die Fehlerbehandlung.'raise'bedeutet, dass eine Ausnahme ausgelöst wird, wenn der entsprechende Schlüssel nicht gefunden wird;'ignore'bedeutet, dass nicht vorhandene Schlüssel ignoriert werden. 'ignore'

Beschreibung des Rückgabewerts

  • Gibt ein neues DataFrame zurück (wenninplace=False), oderNone(wenninplace=True)。
  • Im zurückgegebenen DataFrame wurden die Spaltennamen oder der Index umbenannt.

Beispiele

Lassen Sie uns dies anhand einer Reihe von Beispielen gründlich meistern.rename()die Verwendung von.

Beispiel 1: Spaltennamen umbenennen

Verwenden Sie diecolumnsParameter zum bequemen Umbenennen von Spaltennamen.

Beispiel

import pandas as pd

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

print("Originaldaten:")
print(df)
print("=" * 50)

# Verwende ein Wörterbuch, um Spaltennamen umzubenennen
df_renamed = df.rename(columns={
    'name': 'Name',
    'age': 'age',
    'salary': 'Salary'
})

print("Daten nach dem Umbenennen der Spaltennamen:")
print(df_renamed)

Erwartete Ausgabe:

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

Code-Erklärung:

  1. Die Spaltennamen der Originaldaten sind auf Englisch, und wir verwenden ein Wörterbuch, um sie ins Chinesische umzubenennen.
  2. Mit dercolumnsParameter betrifft nur Spaltennamen, nicht den Zeilenindex.
  3. Dies ist eine übliche Datennormalisierungsoperation.

Beispiel 2: Zeilenindex umbenennen

Verwenden Sie dieindexParameter zum Umbenennen des Zeilenindex.

Beispiel

import pandas as pd

# DataFrame mit Standardindex erstellen
data = {
    Obst: [Apfel, Banane, Orange],
    'Menge': [10, 20, 15]
}
df = pd.DataFrame(data)

print("Originaldaten (Standardindex):")
print(df)
print("=" * 50)

# Ein Wörterbuch zum Umbenennen des Zeilenindex verwenden
df_renamed = df.rename(index={
    0: 'Erste Zeile',
    1: 'Zweite Zeile',
    2: 'Dritte Zeile'
})

print("Daten nach dem Umbenennen des Zeilenindex:")
print(df_renamed)

Erwartete Ausgabe:

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

Code-Erklärung:

  • Der Zeilenindex der ursprünglichen Daten besteht aus Zahlen wie 0, 1, 2.
  • Mit derindexParameter kann sie in aussagekräftigere Namen umbenennen.
  • Dies ist besonders nützlich beim Erstellen von Berichten.
  • Beispiel 3: Sowohl Spaltennamen als auch Zeilenindex umbenennen

    Es kann Spaltennamen und Zeilenindex gleichzeitig umbenennen.

    Beispiel

    import pandas as pd

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

    print("Originaldaten:")
    print(df)
    print("=" * 50)

    # Sowohl Spaltennamen als auch Zeilenindex umbenennen
    df_renamed = df.rename(columns={'A': Column A, 'B': Column B}, index={'x': Row X, 'y': Row Y, 'z': Row Z})

    print("Daten nach dem Umbenennen:")
    print(df_renamed)

    Erwartete Ausgabe:

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

    Code-Erklärung:

    • Du kannst beide verwendencolumnsundindexParameter.
    • Dies ist sehr praktisch beim Datenimport und bei der Standardisierung.
    • Beispiel 4: Verwenden einer Funktion zum Umbenennen

      rename()Es akzeptiert auch eine Funktion als Parameter, wodurch Spaltennamen oder Index batchweise transformiert werden können.

      Beispiel

      import pandas as pd

      # Erstelle ein DataFrame mit relativ komplexen Spaltennamen
      data = {
          'USER_NAME': ['Zhang San', 'Li Si'],
          'USER_AGE': [25, 30],
          'USER_SALARY': [5000, 6000]
      }
      df = pd.DataFrame(data)

      print("Originaldaten:")
      print(df)
      print("=" * 50)

      # Verwende eine Funktion, um Spaltennamen in Kleinbuchstaben umzuwandeln
      df_lower = df.rename(columns=str.lower)

      print("Nach der Umwandlung der Spaltennamen in Kleinbuchstaben:")
      print(df_lower)
      print("=" * 50)

      # Verwende eine Funktion, um Präfix zu entfernen (z. B. USER_)
      df_clean = df.rename(columns=lambda x: x.replace('USER_', ''))

      print("Nach dem Entfernen des Präfixes:")
      print(df_clean)
      print("=" * 50)

      # Verwende eine Funktion zum Hinzufügen eines Präfixes
      df_prefix = df.rename(columns=lambda x: 'col_' + x)

      print("Nach dem Hinzufügen eines Präfixes:")
      print(df_prefix)

      Erwartete Ausgabe:

      原始数据:
        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
      

      Code-Erklärung:

      • str.lowerist die Methode zur Kleinschreibung für Strings.
      • VerwendunglambdaFunktionen können komplexe Benennungsregeln flexibel handhaben.
      • Diese Methode eignet sich für die Stapelverarbeitung einer großen Anzahl von Spaltennamen.
      • Beispiel 5: Verwendung des inplace-Parameters zur In-Place-Modifikation

        Verwenden Sieinplace=Trueum das ursprüngliche DataFrame direkt zu ändern, ohne ein neues Objekt zurückzugeben.

        Beispiel

        import pandas as pd

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

        print("Originaldaten:")
        print(df)
        print(f"Ursprüngliche Daten-ID: {id(df)}")
        print("=" * 50)

        # Verwenden Sie inplace=True, um an Ort und Stelle zu ändern
        df.rename(columns={'name': 'Name', 'age': 'age'}, inplace=True)

        print("Daten nach Änderung mit inplace=True:")
        print(df)
        print(f"Geänderte Daten-ID: {id(df)}")

        Erwartete Ausgabe:

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

        Code-Erklärung:

        • Verwendunginplace=Truedanach bleibt die Speicheradresse (id) des DataFrame unverändert, was auf eine In-Place-Änderung hinweist.
        • Diese Methode kann Speicher sparen, insbesondere bei der Arbeit mit großen Datensätzen.
        • Beispiel 6: Umgang mit nicht vorhandenen Spaltennamen

          Verwenden Sie dieerrorsParameter zur Steuerung des Verhaltens, wenn Spaltennamen nicht vorhanden sind.

          Beispiel

          import pandas as pd

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

          print("Originaldaten:")
          print(df)
          print("=" * 50)

          # Versuch, eine nicht vorhandene Spalte umzubenennen, mit errors='ignore' (Standard)
          df_renamed = df.rename(columns={'C': 'C_new'})  # Spalte C existiert nicht

          print("Umbenennen einer nicht vorhandenen Spalte (C) mit Standardverhalten:")
          print(df_renamed)  # Es erfolgt keine Änderung
          print("=" * 50)

          # Versuch, eine nicht vorhandene Spalte umzubenennen, mit errors='raise'
          try:
              df_renamed2 = df.rename(columns={'C': 'C_new'}, errors='raise')
          except KeyError as e:
              print(f"Ausnahme ausgelöst: {e}")

          Erwartete Ausgabe:

          原始数据:
             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'
          

          Code-Erklärung:

          • Standardmäßig (errors='ignore'), wenn eine Spalte nicht existiert, erfolgt keine Änderung und es wird kein Fehler ausgelöst.
          • Wenn festgelegt auferrors='raise', wird eine Ausnahme ausgelöst.KeyErrorAusnahme.
          • Beispiel 7: Verwendung des axis-Parameters

            Verwenden SieaxisDer Parameter ermöglicht eine flexiblere Angabe der umzubenennenden Achsen.

            Beispiel

            import pandas as pd

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

            print("Originaldaten:")
            print(df)
            print("=" * 50)

            # Verwende axis='columns', um Spalten umzubenennen
            df_renamed_cols = df.rename({'col1': 'Erste Spalte', 'col2': 'Zweite Spalte'}, axis='columns')

            print("Nach dem Umbenennen der Spalten mit axis='columns':")
            print(df_renamed_cols)
            print("=" * 50)

            # Verwende axis='index', um den Zeilenindex umzubenennen
            df_renamed_idx = df.rename({'row1': 'First row', 'row2': 'Second row', 'row3': 'Third row'}, axis='index')

            print("Nach dem Umbenennen von Zeilen mit axis='index':")
            print(df_renamed_idx)

            Erwartete Ausgabe:

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

            Code-Erklärung:

            • axis='columns'oderaxis=1Bedeutet die Arbeit mit Spalten.
            • axis='index'oderaxis=0Bedeutet die Arbeit mit Zeilenindizes.
            • Diese Syntax entspricht dem Stil von NumPy.

            • Hinweise

              • rename()Standardmäßig wird das ursprüngliche DataFrame nicht geändert. Um es direkt zu ändern, verwenden Sieinplace=TrueParameter überschrieben werden.
              • Bevorzugen Sie die Verwendung voncolumnsundindexParameter anstelle vonmapperundaxis, weil Ersteres klarer und leichter zu verstehen ist.
              • Wenn Sie eine Funktion zum Umbenennen verwenden, stellen Sie sicher, dass die Funktion einen String-Typ zurückgibt, andernfalls kann es zu Fehlern kommen.
              • Bei der Arbeit mit großen Datensätzen ist die Verwendung voninplace=Truekann Speicher sparen.
              • Vor dem Umbenennen wird empfohlen, die aktuellen Spaltennamen zu überprüfen. Sie könnendf.columnsverwenden, um sie anzuzeigen.

              Pandas 常用函数Gängige Pandas-Funktionen

              Andere Erweiterungen