Pandas: Datenanalyse mit Python

yang chao, 123RF

Daten-Panda

Die Python-Bibliothek Pandas basiert auf der schnellen Mathematik-Library NumPy und macht die Analyse großer Datenmengen einfach und effizient.
Sicher verstaut - Deduplizierung spart Platz, Cloud-Backup für Windows, Areca sichert kostenlos. ADMIN 01/14 stellt Backups für Profis mit und ohne Cloud ... (mehr)

Big Data für den Heimbedarf: Ganze Gruppen von Entwicklern finden neue Möglichkeiten in ihren Daten – in Zeiten von Laptops, die nur wenige Jahre alte Hochleistungsserver in Ausstattung und Leistung übertreffen. Woran es Unternehmen ohne große Entwicklungsabteilung weiterhin mangelt, ist allerdings die Manpower, um eigene Software zu entwickeln und auf ihre eigenen Daten zuzuschneiden. Die Python-Bibliothek »Pandas« [1] liefert fertige Methoden für viele Anwendungsfälle.

Analyse-Panda

Pandas, ein Akronym für Python Data Analysis Library, zielt auf fünf typische Schritte bei der Verarbeitung und Analyse von Daten, egal aus welcher Quelle diese stammen. Der erste besteht darin, diese einzulesen: Gerade aufgrund der Vielzahl existierender Formate und Standards, sparen die von Pandas gelieferten Werkzeuge Zeit. Die Bibliothek liest Datensätze in den Formaten CSV (Komma-separierte Werte), Excel, das HDF-Format, SQL, JSON, HTML und Stata ein, wobei Pandas Wert auf Flexibilität beispielsweise bei abweichenden Feldtrennern legt. Zusätzlich liest es direkt aus dem Zwischenspeicher oder auch vom Python-Modul Pickle in Dateien serialisierte Python-Objekte ein.

Es folgt die Vorbereitung der eingelesenen Daten. Datensätze werden bei fehlerhaften Einträgen gelöscht oder mit Standardwerten versehen, normalisiert, gruppiert, sortiert, transformiert und anderweitig an die weitere Verarbeitung angepasst. Auch hier gilt wieder, dass es sich bei solchen Vorbereitungsarbeiten in der Praxis meist um arbeitsintensive, aber wenig effektive Tätigkeiten handelt, die zu standardisieren sich lohnt, um zur Auswertung der Inhalte zu kommen.

Der interessante Teil im Big-Data-Geschäft beginnt nun erst mit der Berechnung beispielsweise statistischer Modelle anhand eingelesener Datensätze, die beispielsweise mithilfe von Algorithmen aus dem Bereich des maschinellen Lernens Prognosen über künftige Eingaben zulassen.

Solide Basis

Als Hauptnachteil interpretierter Sprachen wie Python galt lange Zeit vor allem die mangelhafte Geschwindigkeit beim Umgang mit großen Datenmengen und aufwendigen mathematischen Operationen. Vor allem die Python-Bibliothek »NumPy« ([2], Numerical Python) nimmt diesem Vorwurf den Wind aus den Segeln. Sie legt ihre Daten effizient im Arbeitsspeicher ab und integriert C-Code, bei dem die Kompilierung vor der Laufzeit abgeschlossen ist.

Als wichtigste Datenstruktur führt NumPy die multidimensionalen Arrays »ndarrays« ein. Im eindimensionalen Fall repräsentieren sie Vektoren, ansonsten Matrizen mit beliebig vielen Spalten. Im Gegensatz zu Python-Listen ist die Größe von NumPy-Arrays unveränderlich und ihre Elemente von einem festen, bei der Initialisierung vorgegebenen Typ; standardmäßig Fließkommazahlen. Die interne Struktur der Arrays ermöglicht die Berechnung von Vektor- und Matrizenoperationen mit teils erheblich höherer Geschwindigkeit als in einer nativen Python-Implementation.

Am einfachsten erzeugt man NumPy-Arrays aus bestehenden Python-Listen:

np.array([1, 2, 3])

»np« steht hier für den Modulnamen von NumPy, das per Konvention – aber nicht zwangsläufig – mit »import numpy as np« importiert wird. Mehrdimensionale Matrizen entstehen auf ähnliche Weise, nämlich mit verschachtelten Listen:

np.array([[1, 2, 3], [4, 5, 6]])
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019