Entwicklung & Code

pandas 3.0 bringt einheitlichen String-Typ und Performance-Optimierung


Fast drei Jahre nach der letzten Hauptversion steht jetzt Version 3.0 von pandas, der Bibliothek zur Datenanalyse mit Python, am Start. Zu den wichtigsten Änderungen gehören der dedizierte String-Data-Typ str, eine verbesserte Copy-on-Write-Methode sowie eine neue Standardauflösung für datums- und zeitähnliche Daten. Letztere verwendet standardmäßig Mikrosekunden statt Nanosekunden, um Grenzwertfehler für Datumsangaben mit einem Jahr vor 1678 oder nach 2262 zu vermeiden.

Weiterlesen nach der Anzeige

Bei installierter PyArrow-Bibliothek interpretiert pandas 3.0 String-Spalten automatisch als Datentyp str statt als NumPy-object. Das soll für Leistungssteigerung und effizientere Zuweisung von Python-Objekten sorgen. Wie der neue Code aussehen kann, zeigt folgendes Beispiel:


# Old behavior (pandas < 3.0)
>>> ser = pd.Series(["a", "b"])
>>> ser
0 a
1 b
dtype: object # <-- numpy object dtype

# New behavior (pandas 3.0)
>>> ser = pd.Series(["a", "b"])
>>> ser.dtype
>>> ser
0 a
1 b
dtype: str # <-- new string dtype


Mit pandas 3.0 ist Copy-on-Write (CoW) nun die Standard-Speicherverwaltungstechnik. Damit verhält sich jedes Index-Ergebnis wie eine Kopie, sodass Änderungen am Ergebnis den ursprünglichen DataFrame nicht beeinflussen.

Da verkettete Zuweisungen nicht mehr funktionieren, entfällt SettingWithCopyWarning. Damit können die copy()-Aufrufe zum Unterdrücken dieser Warnung entfallen, was ebenfalls eine Verbesserung der Performance bedeutet.


# Old behavior (pandas < 3.0) - chained assignment
df["foo"][df["bar"] > 5] = # This might modify df (unpredictable)

# New behavior (pandas 3.0) - must do the modification in one step (e.g. with .loc)
df.loc[df["bar"] > 5, "foo"] = 100


Weiterlesen nach der Anzeige

Mit dem neuen Release hat das Pandas-Team einige veraltete Funktionen entfernt. Deshalb empfiehlt es, zunächst ein Upgrade auf pandas 2.3 durchzuführen, um sicherzustellen, dass der Code ohne Fehlermeldungen läuft. Erst anschließend sollte man den Wechsel auf Version 3.0 angehen.

Installieren lässt sich pandas 3.0 über PyPI mit python -m pip install --upgrade pandas==3.0.* oder über conda-forge mit conda install -c conda-forge pandas=3.0.

In den Release Notes von pandas 3.0.0 lassen sich sämtliche Änderungen im Detail nachlesen. Weil sie ein Code-Update erforderlich machen können, stellen die Entwicklerinnen und Entwickler Migrationsanleitungen zur Verfügung, unter anderem für den neuen String-Data-Typ und die Copy-on-Write-Methode.

Lesen Sie auch


(who)



Source link

Beliebt

Die mobile Version verlassen