Interview mit Tom Augspurger zur Python-Bibliothek pandas

pandas 1.0: „Das Release 1.0 bedeutet kein Ende und nicht einmal eine Verlangsamung der Entwicklung“
Keine Kommentare

Die Python-Bibliothek pandas zur Datenanalyse und -Manipulation existiert bereits seit zwölf Jahren und hat nun das Meilenstein-Release 1.0.0 erreicht. Was hat das Entwicklerteam zu diesem Schritt bewogen? Wir sprachen mit Tom Augspurger, der uns Einblicke in das neue Release, die Highlights daran sowie in die geplante Zukunft von pandas gewährte.

Die Python-Bibliothek pandas wurde von Tom Augspurger in Version 1.0.0 auf GitHub veröffentlicht, und sie folgt damit auf den Fersen des Anfang Januar erschienenen Release Candidate. Wir befragten Tom Augspurger zu den neuen Funktionen der Bibliothek, und auch zu den geplanten Features stand uns der pandas-Entwickler Rede und Antwort.

Entwickler: Ihr habt euch schlussendlich dazu entschieden, pandas 1.0 zu veröffentlichen. Welche Faktoren spielten bei dieser Überlegung eine Rolle?

Tom Augspurger: Erstmals dachten wir während unseres ersten Entwicklersprints im Juli 2018 ernsthaft über pandas 1.0 nach. Zu jener Zeit peilten wir optimistisch Januar 2019 zur Veröffentlichung an (sechs Monate nach dem Sprint). Wir benötigten dann jedoch weitere 18 Monate zur Entwicklung.

pandas war schon länger in dem Sinne „production ready“, dass es von vielen Institutionen in der Produktion eingesetzt wird. Allerdings gab es noch einige größere Punkte, die wir vor der Verkündung von Version 1.0 erledigen wollten:

  1. Das API aufräumen. Wir hatten eine hohe Anzahl an Deprecations für duplikatives oder unklares Verhalten angesammelt. Viele davon wurden in v1.0 umgesetzt.
  2. Das Datenmodell stabilisieren. Beginnend mit etwa pandas 0.23 (Mai 2018) spezifizierten wir genau, welche Arten von Daten in einer Serie oder einem DataFrame gespeichert werden konnten. Historisch gesehen waren das nur NumPy-Arrays oder ein paar „Extension Types“, die pandas definierte. Das Release 0.23 brachte ein Interface mit, das spezifizierte, welche Art von Array innerhalb pandas gespeichert werden kann, und über die nachfolgenden Releases hinweg verfeinerten wir dieses Interface.

Mit der Umsetzung dieser Stabilisierungen war aus unserer Sicht die 1.0 angebracht.

ML Summit Munich 2020

Market Segmentation in the Era of Big Data

mit Özge Sahin (SkyScry)

Deep Learning mit TensorFlow

Mit Jakob Karalus (Deloitte Consulting)

Entwickler: Was ist dein persönliches Highlight an pandas 1.0?

Tom Augspurger: Der neue NA-Skalar zum Repräsentieren fehlender Skalarwerte. Das ist der Wert, der verwendet wird, um „fehlend“ in unseren neuen bzw. überarbeiteten Nullable-Datentypen Integer, Boolean und String darzustellen. Bisher wurde NaN („not a number“) verwendet, was einige Nachteile mit sich brachte. Vor allem ist NaN ein Float und kann daher nicht mit Integer dtypes verwendet werden. NaN weist darüber hinaus ein eigentümliches Verhalten auf, was logische und vergleichende Operationen betrifft.

pandas.NA ist ein neues Konzept im wissenschaftlichen Python-Ökosystem, und es ist noch unklar, wie sich andere Bibliotheken an den Umgang damit anpassen werden. Wir arbeiten mit anderen Bibliotheken inklusive NumPy zusammen, um herauszufinden, wie wir über das Ökosystem hinweg am besten mit dem Problem fehlender Daten umgehen können.

Entwickler: Was sind die größten Neuerungen beim Upgrade auf die aktuelle Version?

Tom Augspurger: All unsere API Breaking Changes sind in unseren Release Notes dokumentiert. Dieses Release enthält relativ geringe Breaking Changes. Die größten Neuerungen betreffen vermutlich das (experimentelle) IntegerArray, das nun den neuen pandas.NA-Skalarwert anstelle von NaN verwendet.

Zum Aktualisieren empfehlen wir immer:

  1. Ein aufmerksames Lesen der Release Notes.
  2. Den Release Candidate auszuprobieren.

Wir bieten Binaries für finale Releases und Release Candidates an. Unsere Releases auf GitHub können per „Watching“ abonniert werden.

Unsere vollständigen Installationsanleitungen sind hier verfügbar.

Entwickler: Und zum Abschluss, welche Pläne wurden bereits für die weitere Zukunft von pandas geschmiedet?

Tom Augspurger: Das Release 1.0 bedeutet kein Ende und nicht einmal eine Verlangsamung der pandas-Entwicklung. Die Roadmap beinhaltet stets eine aktuelle Vision, in welche Richtung sich das Projekt aus Maintainer-Sicht entwickeln soll.

Persönlich freue ich mich besonders auf Verbesserungen am Extension-Array-Interface – vor allem über die Möglichkeit, Extension-Arrays zu verwenden, um Index-Objekte für das Indizieren zu unterstützen. Die Interoperabilität mit Apache Arrow, vielleicht zuerst via natives String-Array, ist ebenfalls ein vielversprechendes Feld für die zukünftige Entwicklung.

Und natürlich wird die pandas-Entwicklung primär durch ihre Anwender und Beitragenden gelenkt. Jeder kann am Entwicklungsprozess teilhaben, um zu beeinflussen, wohin die Reise geht.

Vielen Dank für das Interview!

Tom Augspurger trägt seit 2014 zu pandas bei. Er arbeitet bei Anaconda als Entwickler an Open-Source-Bibliotheken wie pandas und Dask.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -