Kurz notiert: Die Data-Science-Bibliothek pandas wurde in Version 3.0 veröffentlicht. Auch wenn ein drittes Major-Release erst einmal nach tiefgreifenden Änderungen klingt, ist es tatsächlich nur die SemVer-Versioierung, die für den Major-Release verantwortlich ist, da pandas 3.0 auch ältere Features entfernt, die zuvor deprecated wurden. An sich bleiben natürlich die Grundkonzepte gleich.
Neuerungen
Das pandas-Team hebt drei Neuerungen hervor:
Automatischer String-Typ für Spalten
Wird ein DataFrame erzeugt, ermittelt pandas in vielen Fällen den Datentyp für die Spalte. Wenn z. B. nur Ganzzahlen enthalten sind, ist der Datentyp int. Bei Strings war dies bisher nicht so, wie wurden als der generische Datentyp object aufgelöst und mussten manuell typisiert werden.
Das wird mit pandas 3.0 gelöst, denn String-Spalten erhalten nun automatisch den Typ str. Für diese Umstellung wird ein Migration-Guide bereitgestellt.
Verbesserungen bei Copy-on-Write
Unter Python gibt es eigentlich keine Pointer, womit man sich eigentlich einige Probleme erspart. Trotzdem kann es Referenzen geben, die wie Pointer wirken. Ein Beispiel aus dem Guide:
df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]})
subset = df["foo"]
subset.iloc[0] = 100
Aus der 1 in "foo" wurde kurzerhand 100, auch wenn nicht der DataFrame direkt geändert werden musste. Das Verhalten …