pandas 2.0 ist der neueste Major-Release und enthält einige interessante Neuerungen.

Dieser Vortrag beleuchtet die neuen PyArrow-Datentypen und das neue Feature "Copy-on-Write". Apache Arrow definiert ein programmiersprachenunabhängiges Format für In-Memory-Datenverarbeitungen. pandas 2.0 führt ein auf Arrow basiertes Extension Array ein. Arrow Arrays stellen insbesondere für Strings eine erhebliche Verbesserung zu NumPyobject dar. Wir untersuchen, wie die Arrow-Datentypen bereits in dieser frühen Phase effizient in pandas und Dask eingesetzt werden können und wie dadurch eine deutlich verbesserte Performance und ein signifikant reduzierter Memory-Footprint erreicht werden kann.

Dies führt unter anderem dazu, dass ein typischer Dask-Workflow mit einem Drittel der ursprünglichen Maschinen auskommt. Copy-on-Write ist ein optionales Feature in der pandas-2.x-Serie und wird in 3.0 voraussichtlich standardmäßig aktiviert. Jeder DataFrame verhält sich wie eine Kopie des vorherigen Objekts, wenn Copy-on-Write aktiviert ist, d. h. es ist nicht mehr möglich, mehr als einen DataFrame mit einer Operation zu verändern. Dadurch kann die Indexing-API vereinfacht werden. Die meisten Operationen in pandas erzeugen defensive Kopien um unerwünschte Nebeneffekte zu verhindern. Auf diese Kopien kann mit Copy-on-Write komplett verzichtet werden.

Dieser Vortrag erklärt, wie der Copy-on-Write Mechanismus funktioniert, welche Auswirkungen er auf Nutzer von pandas oder Dask hat und welche Verbesserungen wir sowohl mit pandas als auch im verteilten Rechnen mit Dask beobachten konnten.