Das Hinzufügen neuer Spalten zu Pandas DataFrames ist eine grundlegende Aufgabe der Datenmanipulation. Häufig müssen diese neuen Spalten mit einem Standardwert initialisiert werden. Dieser Artikel untersucht zwei effiziente Methoden, um dies in Pandas zu erreichen: pandas.DataFrame.assign()
und pandas.DataFrame.insert()
, wobei ihre Unterschiede und besten Anwendungsfälle hervorgehoben werden.
Inhaltsverzeichnis
- Spalten hinzufügen mit
pandas.DataFrame.assign()
- Hinzufügen von Spalten mit bedingten Standardwerten
- Spalten hinzufügen mit
pandas.DataFrame.insert()
- Die richtige Methode auswählen
Spalten hinzufügen mit pandas.DataFrame.assign()
Die Methode assign()
bietet eine saubere und prägnante Möglichkeit, neue Spalten hinzuzufügen. Wichtig ist, dass sie ein neues DataFrame zurückgibt und das ursprüngliche DataFrame unverändert lässt. Dieser funktionale Ansatz fördert die Unveränderlichkeit und hilft, unerwartete Modifikationen zu vermeiden.
import pandas as pd
# Beispiel DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print("Original DataFrame:n", df)
# Füge eine neue Spalte 'C' mit dem Standardwert 0 hinzu
df_new = df.assign(C=0)
print("nDataFrame nach dem Hinzufügen der Spalte 'C':n", df_new)
print("nOriginal DataFrame bleibt unverändert:n", df)
#Mehrere Spalten auf einmal hinzufügen
df_new = df.assign(C=0, D='default')
print("nDataFrame nach dem Hinzufügen mehrerer Spalten:n", df_new)
Hinzufügen von Spalten mit bedingten Standardwerten
Für komplexere Szenarien, die bedingte Standardwerte basierend auf vorhandenen Daten erfordern, kann assign()
mit anderen Pandas-Funktionen kombiniert werden. Dies bietet mehr Kontrolle und Flexibilität.
import pandas as pd
import numpy as np
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# Füge eine neue Spalte 'C' mit NaN als Platzhalter hinzu und weise dann Werte bedingt zu
df['C'] = np.nan
df.loc[df['A'] > 1, 'C'] = 10
df.loc[df['A'] <= 1, 'C'] = 20
print("nDataFrame nach dem Hinzufügen und bedingten Setzen der Spalte 'C':n", df)
Spalten hinzufügen mit pandas.DataFrame.insert()
Die Methode insert()
ermöglicht eine präzise Steuerung der Spaltenplatzierung. Im Gegensatz zu assign()
modifiziert sie das DataFrame in situ. Das bedeutet, dass das ursprüngliche DataFrame direkt verändert wird.
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# Füge eine neue Spalte 'C' an Position 1 (Index 1) mit dem Standardwert 0 hinzu
df.insert(1, 'C', 0)
print("nDataFrame nach dem Einfügen der Spalte 'C':n", df)
Da insert()
das DataFrame in situ modifiziert, ist es wichtig, eine Kopie mit .copy()
zu erstellen, wenn das Original-DataFrame erhalten werden soll.
Die richtige Methode auswählen
Die Wahl zwischen assign()
und insert()
hängt von Ihren Bedürfnissen ab. assign()
wird im Allgemeinen wegen seiner funktionalen, unveränderlichen Natur bevorzugt, insbesondere bei komplexer Logik oder dem Hinzufügen mehrerer Spalten. insert()
ist nützlich, wenn eine präzise Spaltenposition entscheidend ist und eine Modifikation in situ akzeptabel ist. Berücksichtigen Sie immer die Auswirkungen der Modifikation in situ, um unbeabsichtigte Folgen zu vermeiden.