Schlagwort-Archive: python

Vektorisierte Operationen mit Pandas

Aktuell beschäftige ich mich intensiv mit Python im Kontext von Data Science.
Hierbei kommt man natürlich nicht an Pandas vorbei. Und natürlich gibt es, wie so gut bei jedem Problem, welches man durch Programmcode lösen möchte, mehrere Wege zum Ziel.

Bei der Verwendung von Pandas Dataframes könnte man auf die Idee kommen, folgenden Code zu schreiben, um alle Werte einer Spalte zu verarbeiten und das Ergebnis in eine neue Spalte zu schreiben:

df['wert_quadrat'] = df.apply(lambda row: row['wert'] ** 2, axis=1)

Der Code quadriert den Wert in der Spalte “wert” und erzeugt dann eine neue Spalte “wert_quadrat” mit dem Ergebnis.
Dies funktioniert, doch es gibt eine elegantere und vor allem performantere Lösung: vektorisierte Operationen!

Hier die gleiche Operation als vektorisierte Operation:

df['wert_quadrat'] = row['wert'] ** 2

Je nach Größe des Datensatzes kann man hierdurch erhebliche Performancegewinne erzielen, da bei vektorisierten Operationen kein Python-Loop durchgeführt wird, bei dem für jede Zeile die entsprechende Python-Funktion ausgeführt wird, sondern die Operation wird an die zugrundeliegende numpy arrays deligiert, welche die Operation in Maschinencode ausführt.

pylint – ‘Unable to import’ – import-error

Wenn man mit VScode Python entwickelt und für das linting pylint verwendet, dann kann es vorkommen, dass der Editor die Imports als falsch bzw. nicht aufgelöst anzeigt und dies mit der Einblendung:

Unable to import {Modulname} pylint(import-error)

quittiert. Dies liegt daran, dass pylint nicht den korrekt Python-Interpreter bzw. den Pfad dorthin kennt.

Lösung: Man öffnet das VScode Menü mit F1 bzw. Strg + Shift + P und wählt über die Option Python: Select Interpreter den korrekten Python-Interpreter aus.