Eine neue Spalte zu einem Pandas DataFrame hinzufügen (mit Beispielen & Best Practices)
Updated on
Das Hinzufügen neuer Spalten ist eine der häufigsten Operationen beim Arbeiten mit Pandas DataFrames. Ob du ein berechnetes Feld erstellst, eine Spalte an einer bestimmten Position einfügst oder ein DataFrame dynamisch aufbaust – Pandas stellt mehrere leistungsfähige Techniken bereit, um das einfach zu erledigen.
Dieser aktualisierte Guide für 2025 behandelt:
- Die 6 besten Methoden zum Hinzufügen einer neuen Spalte
- Wann du welche Methode verwenden solltest
- Spalten auf Basis vorhandener Daten hinzufügen
- Häufige Fehler vermeiden (z. B. SettingWithCopyWarning)
- Praxisnahe Beispiele
⭐ Kurzer Tipp: Mach aus deinem DataFrame ein visuelles Analyse‑Tool
Willst du dein DataFrame sofort visualisieren?
PyGWalker verwandelt jedes Pandas- oder Polars-DataFrame in eine interaktive, Tableau-ähnliche UI direkt in Jupyter Notebook.
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)| Kaggle | Colab | GitHub |
|---|---|---|
| Run PyGWalker in Kaggle (opens in a new tab) | Run in Google Colab (opens in a new tab) | Give us a ⭐️ (opens in a new tab) |
Was ist ein Pandas DataFrame?
Ein DataFrame ist eine zweidimensionale, beschriftete Tabelle (Zeilen + Spalten), ähnlich wie Excel‑ oder SQL‑Tabellen. Mit Pandas kannst du DataFrames erstellen aus:
- CSV
- Excel
- SQL
- JSON
- Python‑Listen & ‑Dictionaries
und erhältst leistungsfähige APIs, um sie zu manipulieren und zu analysieren.
📌 Wie fügt man eine neue Spalte in Pandas hinzu? (Kurzüberblick)
| Methode | Am besten geeignet für | Beispiel |
|---|---|---|
1. Zuweisung (df['col'] = ...) | Die meisten einfachen Fälle | df['salary'] = ... |
2. Spalte einfügen (df.insert) | Einfügen an bestimmtem Index | df.insert(1, 'x', ...) |
3. Assign (df.assign) | Method Chaining | df = df.assign(x=...) |
4. Concat (pd.concat) | Viele Spalten auf einmal | pd.concat([df, df2], axis=1) |
| 5. Basierend auf bestehenden Spalten | Reale Transformationen | df['age2'] = df['age'] * 2 |
| 6. Bedingte Spalten | If‑else‑Logik | np.where(...) |
Schauen wir uns jede Methode mit Beispielen an.
1. Methode: Einfache Zuweisung (für die meisten Anwendungsfälle)
df['NewColumn'] = [1, 2, 3, 4]▶ Beispiel
df['Salary'] = [50000, 60000, 70000, 80000]Wann verwenden?
- Häufigste & einfachste Methode
- Zum Hinzufügen von Konstanten, Listen, Arrays oder berechneten Ergebnissen
Hinweise:
- Überschreibt die Spalte, falls sie bereits existiert
- Sehr effizient
2. Methode: Spalte an einer bestimmten Position einfügen (df.insert)
df.insert(loc=1, column='Department', value=['IT', 'HR', 'Finance', 'Admin'])Verwenden, wenn:
- Du eine genaue Spaltenreihenfolge brauchst
- Nützlich für Reporting und Export strukturierter Daten
3. Methode: Spalte mit assign hinzufügen (funktionaler / Chaining‑Stil)
df = df.assign(Tax=lambda x: x['Salary'] * 0.1)Vorteile:
- Gut für Method Chaining
- Verändert das ursprüngliche DataFrame nicht, sofern du das Ergebnis nicht zuweist
4. Methode: Spalten mit pd.concat hinzufügen
df2 = pd.DataFrame({'Bonus': [1000, 2000, 2500, 1800]})
df = pd.concat([df, df2], axis=1)Verwenden, wenn:
- Du mehrere neue Spalten anhängen willst
- Du zwei DataFrames kombinieren möchtest
Vermeiden, wenn:
- Du nur eine einzelne Spalte hinzufügst → Zuweisung ist schneller
5. Spalte basierend auf bestehenden Spalten hinzufügen (Praxisbeispiel)
Das ist der häufigste Anwendungsfall – im ursprünglichen Artikel oft nicht ausreichend behandelt.
Beispiel: Gesamtscore berechnen
df['Total'] = df['Math'] + df['Science'] + df['English']Beispiel: Einen Wert normalisieren
df['Age_Norm'] = df['Age'] / df['Age'].max()6. Bedingte Spalten (np.where oder boolesche Masken)
Beispiel: Einen „Senior“-Indikator hinzufügen
import numpy as np
df['Senior'] = np.where(df['Age'] >= 35, 'Yes', 'No')Variante mit boolescher Maske
df['IsAdult'] = df['Age'] > 18Verwenden, wenn:
- Du Klassifikationslabels erstellst
- Binäre Bedingungen abbildest
Eine bestehende Spalte überschreiben
Ja – einfache Zuweisung überschreibt:
df['Age'] = [26, 31, 36, 41]Spalte anhand eines Spaltennamens an einer Position einfügen
df.insert(df.columns.get_loc("Age"), 'Score', [1, 2, 3, 4])Nützlich, wenn die Spaltenreihenfolge von bestehenden Namen abhängt (z. B. in automatischen Pipelines).
⚠ Häufiger Fehler: SettingWithCopyWarning
Wenn du ein DataFrame falsch slicest:
subset = df[df['Age'] > 30]
subset['Flag'] = 1 # Warning!Korrektur:
subset = df[df['Age'] > 30].copy()
subset['Flag'] = 1Fazit
Du kennst jetzt die 6 grundlegenden Methoden, um neue Spalten in Pandas hinzuzufügen:
- Einfache Zuweisung (beste Standardwahl)
insert‑Methode für eine exakte Reihenfolgeassignfür Chainingconcatzum Kombinieren von DataFrames- Berechnete Spalten
- Spalten mit bedingter Logik
Mit diesen Techniken kannst du DataFrames effizient manipulieren und typische Fallstricke vermeiden.
FAQ (für SEO & Nutzerunterstützung)
1. Wie füge ich eine Spalte mit demselben Wert hinzu?
df['Source'] = 'System'2. Wie füge ich eine Spalte basierend auf einer Funktion hinzu?
df['Score'] = df.apply(lambda x: x['Math'] * 0.6 + x['English'] * 0.4, axis=1)3. Wie füge ich mehrere Spalten auf einmal hinzu?
df[['A', 'B']] = df[['X', 'Y']] * 24. Was ist die schnellste Methode?
Einfache Zuweisung (df['col'] = ...) ist in der Regel am effizientesten.