HOWTO · Pandas
Pandas-Dataframe aus einer Liste erstellen
Dieses Tutorial demonstriert, wie man einen Pandas DataFrame aus Listen erstellt.
Auf dieser Seite
Mit dem Pandas-Konstruktor pd.DataFrame() lassen sich listenbasierte Daten in eine Tabelle umwandeln. Wähle die Eingabeform passend zu deinen Daten: Eine einfache Liste ergibt eine Spalte, eine Liste von Listen ergibt Zeilen und Dictionaries liefern benannte Spalten oder Datensätze. Die Beispiele zeigen, wie du Spalten benennst und wie die jeweilige Eingabeform dem resultierenden DataFrame zugeordnet wird.
Einen DataFrame aus einer einzelnen Liste erstellen
Übergib pd.DataFrame() eine eindimensionale Liste und gib eine Spaltenbezeichnung an. Jeder Listenwert wird zu einer Zeile in dieser Spalte.
import pandas as pd
values = [10, 20, 30]
df = pd.DataFrame(values, columns=["Score"])
print(df)
Das Argument columns erwartet eine Liste mit Bezeichnungen, auch wenn die Eingabe nur eine Spalte enthält. Der DataFrame erhält standardmäßig einen Zeilenindex, sofern du keinen anderen Index angibst. Mit diesen Eingaben enthält das Ergebnis eine Spalte Score und eine Zeile für jeden Wert.
Einen DataFrame aus mehreren Listen erstellen
Wenn separate Listen Werte für die entsprechenden Spalten enthalten, kannst du mit der Python-Funktion zip() die Elemente anhand ihrer Position paaren und die daraus entstehenden Zeilen anschließend an den Konstruktor übergeben.
import pandas as pd
names = ["Ada", "Lin"]
scores = [95, 88]
rows = list(zip(names, scores))
df = pd.DataFrame(rows, columns=["Name", "Score"])
print(df)
Die ersten Werte der beiden Listen bilden die erste Zeile, die zweiten Werte die nächste und so weiter. zip() endet, sobald die kürzeste Eingabe erschöpft ist. Daher werden zusätzliche Werte am Ende einer längeren Liste nicht übernommen. Verwende Listen mit passenden Längen, wenn jeder Wert im Ergebnis enthalten sein soll.
Einen DataFrame aus einer Liste von Listen erstellen
Bei zeilenorientierten Daten bildet jede innere Liste eine Zeile. Übergib pd.DataFrame() dazu die passenden Spaltenbezeichnungen.
import pandas as pd
rows = [[1, "Ada", 95], [2, "Lin", 88]]
df = pd.DataFrame(rows, columns=["ID", "Name", "Score"])
print(df)
Hier wird das erste Element jeder inneren Liste ID, das zweite Name und das dritte Score zugeordnet. Jede Zeile sollte für jede angegebene Spaltenbezeichnung einen Wert enthalten. Achte beim Erstellen der verschachtelten Listen darauf, dass diese Zuordnung stimmt. Dieses Format eignet sich, wenn die Daten bereits als Datensätze organisiert sind, den einzelnen Werten aber noch Feldnamen fehlen.
Einen DataFrame aus einer Liste von Dictionaries erstellen
Verwende eine Liste von Dictionaries, wenn jeder Datensatz Werte bereits Feldnamen zuordnet. Pandas verwendet die Dictionary-Schlüssel als Spaltenbezeichnungen und jedes Dictionary als eine Zeile.
import pandas as pd
records = [
{"Name": "Ada", "Score": 95},
{"Name": "Lin", "Score": 88},
]
df = pd.DataFrame(records)
print(df)
Diese Form eignet sich für Datensätze, bei denen Werte über Schlüssel statt über ihre Position identifiziert werden. Fehlt in einem Dictionary ein Schlüssel, der in anderen Datensätzen vorkommt, legt Pandas die entsprechende Spalte an und trägt für diese Zeile einen Fehlwert ein. Füge dem Konstruktor columns=[...] hinzu, wenn du die Spaltenreihenfolge festlegen oder eine bekannte Menge von Feldern aufnehmen möchtest.
Einen DataFrame aus einem Dictionary mit Listen erstellen
Ordne bei spaltenorientierten Daten jedem Spaltennamen eine Werteliste zu. Die Dictionary-Schlüssel werden zu Spaltenbezeichnungen, und jede Liste liefert die Werte ihrer Spalte.
import pandas as pd
columns = {
"Name": ["Ada", "Lin"],
"Score": [95, 88],
}
df = pd.DataFrame(columns)
print(df)
Alle Listen im Dictionary müssen dieselbe Länge haben, damit Pandas daraus Zeilen bilden kann. Diese Struktur ist praktisch, wenn die Werte nach Feldern gesammelt werden, etwa in einer Liste mit Namen und einer weiteren mit Bewertungen. Sind deine Daten stattdessen nach Zeilen organisiert, verwende das oben gezeigte Muster mit einer Liste von Listen.
Einen DataFrame aus einem NumPy-Array erstellen
Ein zweidimensionales NumPy-Array lässt sich wie eine verschachtelte Liste an pd.DataFrame() übergeben. Gib Spaltenbezeichnungen an, wenn die Spalten des Arrays aussagekräftige Namen erhalten sollen.
import numpy as np
import pandas as pd
values = np.array([[1, 95], [2, 88]])
df = pd.DataFrame(values, columns=["ID", "Score"])
print(df)
NumPy-Arrays haben einen Datentyp (dtype), der für ihre Elemente gilt. Wird beispielsweise ein einzelnes Array aus einer Mischung von Zahlen und Zeichenfolgen erstellt, können die Zahlen bereits vor dem Erstellen des DataFrames in Zeichenfolgen umgewandelt werden. Wenn die Spalten unterschiedliche Typen benötigen, kannst du sie als separate Dictionary-Werte aufbauen oder eine Liste von Dictionaries verwenden. Dieses Beispiel nutzt ein numerisches Array und trifft keine Aussage zur Leistung. Wähle die Eingabeform, die deine Daten am besten abbildet.