HOWTO · Python

Eine Liste in Python in einen Pandas-DataFrame umwandeln

Dieses Tutorial zeigt, wie man in Python eine Liste in einen Pandas DataFrame umwandelt.

Auf dieser Seite

Mit pd.DataFrame(my_list) wandelst du eine Python-Liste in einen Pandas-DataFrame um. Eine eindimensionale Liste wird zu einer Spalte mit einem standardmäßigen ganzzahligen Zeilenindex. Mit dem Argument columns benennst du die Spalte, mit index legst du Zeilenbeschriftungen fest und mit einer Liste aus Listen erstellst du mehrere Spalten.

Eine Liste in Python in einen Pandas-DataFrame umwandeln

Ein DataFrame ist eine zweidimensionale Tabelle mit beschrifteten Zeilen und Spalten. Importiere Pandas, übergib die Liste an den DataFrame-Konstruktor und weise das Ergebnis einer Variablen zu. In einem Skript kannst du print(df) aufrufen, um die Tabelle auszugeben. In einem Notebook oder einer interaktiven Sitzung reicht es, df auszuwerten.

In diesem Beispiel landet jeder Name in der einzelnen Spalte mit der Beschriftung 0. Pandas nummeriert die Zeilen standardmäßig ab 0. pd.DataFrame() ist der Konstruktor, der die Tabelle erstellt; es handelt sich nicht um eine Methode, die auf der Liste aufgerufen wird. Das ist wichtig, wenn du den Aufruf anpasst: Übergib die Daten als erstes Argument und verwende anschließend benannte Argumente wie columns oder index, um die Tabellenstruktur festzulegen.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list)
print(df)

Eine Liste in einer Spalte eines Pandas-DataFrames in Python speichern

Übergib dem Argument columns beim Erstellen des DataFrames eine Liste mit einer Beschriftung. Diese Beschriftung benennt die Spalte, ändert aber nicht den Zeilenindex. Die Anzahl der Spaltenbeschriftungen muss der Spaltenzahl der Eingabedaten entsprechen.

Hier bleiben die Werte in ihrer ursprünglichen Reihenfolge; Names ersetzt die standardmäßige Spaltenbeschriftung 0.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list, columns=["Names"])
print(df)

Eine Liste in Python mit Index in einen DataFrame umwandeln

Mit dem Argument index legst du Zeilenbeschriftungen fest, während columns die Spaltenbeschriftungen bestimmt. Gib für jeden Listenwert eine Indexbeschriftung an, damit jede Zeile die passende Beschriftung erhält. Diese Beschriftungen ersetzen den standardmäßigen ganzzahligen Index; sie werden nicht zu einer weiteren Datenspalte. In diesem Beispiel wird der erste Wert mit i., der zweite mit ii. und der dritte mit iii. beschriftet. Verwende Beschriftungen, die zu deinen Datensätzen passen, etwa Datumsangaben oder Produktkennungen.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(
    my_list,
    index=["i.", "ii.", "iii."],
    columns=["Names"],
)
print(df)

Zwei Listen mit zip() in Python zu einem DataFrame zusammenführen

Die Python-Funktion zip() paart Werte aus Eingabe-Iterierbaren anhand ihrer Position. Übergib die Paare an pd.DataFrame() und gib für jede Eingabeliste eine Spaltenbeschriftung an. Das Beispiel verwendet parallele Listen mit Namen und Körpergrößen, sodass jeder Name in derselben Zeile wie die zugehörige Körpergröße steht. Du kannst auch mehr als zwei Listen paaren, indem du sie alle an zip() übergibst und die passenden Spaltenbeschriftungen angibst.

zip() endet, sobald die kürzeste Eingabe ausgeschöpft ist. Wenn jede Quellliste für jede Zeile einen Wert liefern soll, stelle vor dem Erstellen des DataFrames sicher, dass alle Listen gleich lang sind.

import pandas as pd

name_list = ["Tom", "Mark", "Tony"]
height_list = [150, 151, 152]
rows = zip(name_list, height_list)
df = pd.DataFrame(rows, columns=["Name", "Height"])
print(df)

Eine mehrdimensionale Liste in Python in einen Pandas-DataFrame umwandeln

Bei tabellarischen Daten stellst du jede Zeile als innere Liste dar und übergibst die äußere Liste an pd.DataFrame(). Gib columns eine Beschriftung für jeden Wert in einer Zeile. In diesem Beispiel enthält jede innere Liste zuerst einen Namen und dann ein Alter; die Tabelle hat daher zwei Spalten und drei Zeilen.

Diese Form eignet sich, wenn jede Zeile dieselben Felder in derselben Reihenfolge enthält. Prüfe, ob die Werte der Zeilen zu den angegebenen Beschriftungen passen. Bei Datensätzen mit unterschiedlichen Feldern solltest du die Daten zunächst in eine einheitliche Tabellenform bringen.

import pandas as pd

info = [["Tom", 18], ["Mark", 25], ["Tony", 68]]
df = pd.DataFrame(info, columns=["Name", "Age"])
print(df)