Pandas DataFrames sind essentiell für die Datenmanipulation in Python. Das Hinzufügen neuer Spalten ist eine gängige Aufgabe, und Pandas bietet mehrere effiziente Möglichkeiten, dies zu erreichen. Dieser Artikel untersucht vier wichtige Methoden und hebt deren Stärken und Schwächen hervor, um Ihnen bei der Auswahl des besten Ansatzes für Ihre Situation zu helfen.
Inhaltsverzeichnis
[]-Operator-Methode: Der schnelle und einfache Weg
Dies ist die einfachste Methode, ideal zum Hinzufügen von Spalten basierend auf bestehenden Daten oder einfachen Berechnungen. Sie weisen Werten direkt einer neuen Spalte mithilfe von eckigen Klammern zu.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['New York', 'London', 'Paris']
print(df)
Einschränkungen: Diese Methode kann nicht an einer bestimmten Position einfügen und erfordert, dass die Daten der neuen Spalte der Länge des DataFrames entsprechen.
df.insert()
-Methode: Präzise Spaltenplatzierung
df.insert()
bietet mehr Kontrolle und ermöglicht Ihnen die Angabe des Index (Position) der Spalte. Es nimmt drei Argumente entgegen: die Position, den Spaltennamen und die Daten.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['New York', 'London', 'Paris'])
print(df)
Am besten geeignet für: Situationen, in denen die Reihenfolge der Spalten entscheidend ist.
df.assign()
-Methode: Effizientes Hinzufügen mehrerer Spalten
df.assign()
ist besonders nützlich zum gleichzeitigen Hinzufügen mehrerer Spalten oder zum Erstellen neuer Spalten basierend auf Berechnungen. Wichtig ist, dass es ein *neues* DataFrame zurückgibt und das Original unverändert lässt.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['New York', 'London', 'Paris'], Age_Squared=df['Age']**2)
print(df)
Am besten geeignet für: Mehrere Spaltenzusätze und berechnete Spalten; seine Unveränderlichkeit verhindert versehentlichen Datenverlust.
df.loc()
-Methode: Bedingte Spaltenerstellung
df.loc()
bietet die größte Flexibilität und ermöglicht die bedingte Spaltenerstellung basierend auf der Zeilenauswahl und der booleschen Indizierung.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Jung'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Älter'
print(df)
Am besten geeignet für: Das Hinzufügen von Spalten basierend auf komplexen Bedingungen; erfordert Vertrautheit mit der booleschen Indizierung.
Fazit: Die optimale Methode hängt von Ihren spezifischen Anforderungen ab. Der []-Operator ist schnell für einfache Ergänzungen, df.insert()
steuert die Spaltenposition, df.assign()
verarbeitet mehrere oder berechnete Spalten effizient, und df.loc()
ermöglicht die bedingte Spaltenerstellung. Wählen Sie die Methode, die für Ihre Aufgabe die beste Balance zwischen Lesbarkeit und Funktionalität bietet.