API · Pandas
Pandas Series.tolist() Funktion
Die Methode Series.tolist() gibt die Werte einer Series als Python-Liste zurück.
Auf dieser Seite
Series.tolist() gibt die Werte einer pandas-Series als Python-Liste zurück. Rufe die Methode ohne Argumente auf: series.tolist(). Das ist nützlich, wenn du Werte an Code übergeben möchtest, der eine normale Liste erwartet, oder sie ohne das Anzeigeformat einer Series ansehen willst.
Eine Series in eine Liste umwandeln
Rufe die Methode für das Series-Objekt auf und speichere den Rückgabewert. Der Aufruf verändert die ursprüngliche Series nicht:
values = series.tolist()
Die Methode benötigt keine Parameter. Das Ergebnis ist eine Python-list mit den Werten der Series in ihrer bestehenden Reihenfolge. Die zurückgegebene Liste ist ein eigener Container. Änderungen an der Liste verändern daher nicht die Series. Für die Werte selbst gilt weiterhin das übliche Verhalten von Python: Bei veränderlichen Objekten können beide Container weiterhin auf dieselben Objekte verweisen.
Die zurückgegebene Liste verstehen
Eine Series enthält mehr Struktur als eine Liste. Ihre Indexbezeichnungen und ihr dtype beschreiben die Series, aber tolist() gibt nur die Werte zurück. Indexbezeichnungen werden nicht als Listeneinträge übernommen, und eine Python-Liste hat keinen pandas-dtype. Wenn du auch die Bezeichnungen benötigst, verwende eine separate Operation. Hängt nachfolgender Code vom Index oder von pandas-spezifischem Verhalten ab, solltest du die Series beibehalten.
Die Liste hat genauso viele Einträge wie die Series Werte, einschließlich der Werte, die fehlende Daten darstellen. Die Werte stehen in derselben Reihenfolge wie in der Series. Pandas kann beim Erstellen der Series einen dtype festlegen. Deshalb können numerische Werte bereits vor der Konvertierung umgewandelt worden sein. tolist() gibt die in der Series enthaltenen Werte wieder und stellt nicht die ursprünglichen Eingabetypen wieder her.
Numerische und String-Series umwandeln
Führe dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
import pandas as pd
scores = pd.Series([88, 91, 76], index=["Mia", "Noah", "Ava"])
names = pd.Series(["Rose", "Jasmine", "Tulip"])
score_list = scores.tolist()
name_list = names.tolist()
print(score_list)
print(name_list)
print(isinstance(score_list, list))
print(score_list == [88, 91, 76])
[88, 91, 76]
['Rose', 'Jasmine', 'Tulip']
True
True
Beide Aufrufe verwenden dieselbe Methode ohne Argumente. Die numerische Series hat Indexbezeichnungen, die konvertierte Liste enthält jedoch nur ihre Werte. Die String-Series ergibt eine Liste von Zeichenfolgen in ihrer ursprünglichen Reihenfolge.
Das Ergebnis in Python prüfen
Verwende isinstance(result, list), wenn der nachfolgende Code eine Liste benötigt. Um den Inhalt zu prüfen, kannst du result mit den erwarteten Werten vergleichen. Das Beispiel führt beides vor: Die Typprüfung bestätigt den Container, der Gleichheitsvergleich bestätigt die numerischen Werte und ihre Reihenfolge. Dieselben Prüfungen kannst du auf name_list anwenden, zum Beispiel mit einem Vergleich mit ['Rose', 'Jasmine', 'Tulip'].
Weicht das Ergebnis von deinen Erwartungen ab, sieh dir die Series vor der Konvertierung mit print(series) an und prüfe ihren Index und dtype. So lässt sich feststellen, ob Werte bereits beim Erstellen der Series verändert wurden oder ob die Abweichung bei der Konvertierung entstand. Für eine schnelle Konvertierung genügt der Aufruf Series.tolist(); speichere das Ergebnis, wenn du es prüfen oder an eine andere Funktion übergeben möchtest.