Die Open-Source-Bibliothek Pandas ist das Schweizer Taschenmesser im Bereich Datenanalyse in Python ohne die Performance Nachteile interpretierter Sprachen. Sie punktet mit:
* Hochperformance-Verarbeitungen großer Datenmengen dank Numpy,
* Verarbeitung gängiger Datenformate (CSV, Excel, HDF, SQL, JSON, HTML ...), und
* direktem Zugriff auf Visualisierung, Aggregationen und Statistikfunktionen.
Der Talk gibt eine Einführung in Pandas insbesondere mit Blick auf DataSeries, DataFrames, Zeitreihenanalyse und zeigt anhand von Beispielen, wie man effizient und schnell mit Pandas tiefen Einblick in seine Daten bekommen kann.
2. Alexander C. S. Hendorf
Königsweg GmbH
Königsweg verbindet High-Tech Startups und die Industrie
EuroPython Organisator + Programm Chair
mongoDB master 2016, MUG Leader
Speaker mongoDB days, EuroPython, PyData…
@hendorf
3.
4. Herkunft und Ziele
-Open Source Python Library
-Praktische 'real-world'-Datenanalyse - schnell, effizient & einfach
-Lückenloser Datenanalyse Workflow (ohne Wechsel in z.B R)
-2008 begonnen von Wes McKinney,
nun PyData Stack bei Continuum Analytics ("Anaconda")
-Stabiles Projekt mit regelmäßigen Updates
-https://github.com/pydata/pandas
6. Heute
Teil 1:
Grundfunktionalitäten von Pandas
Teil 2:
Zeitreihen-Analyse mit Pandas
Git mit allen Code-Beispielen unter:
https://github.com/Koenigsweg/data2day-2016.git
15. Aufbau / Struktur: DataSeries
-eindimensionale, bezeichnete Reihe, die jeden Datentyp enthalten kann
-Die Bezeichnung der Reihe heißt hier idR index
-automatische Erstellung von index, wenn nicht vorhanden
-Ein Daten Typ (nicht gemischt),
aber dynamische Zuweisung/Umwandlung wie in Python üblich
bzw. auch explizit setzbar
21. Aufbau / Struktur: DataFrame
-zweidimensionale, bezeichnete Daten Struktur z.B. aus
-DataSeries
-2-D numpy.ndarray
-anderen DataFrames
-automatische Erstellung von index, wenn nicht vorhanden
22. Aufbau / Struktur Index
-Index
-automatisch, wenn keine Vorgabe (Position)
-kann nachträglich ge- oder ersetzt werden
-Typen: Position, Zeitstempel, Zeitbereiche, Labels,…
-eine oder mehrere Dimensionen
-darf Wert mehrfach enthalten (NOT UNIQUE!)
23. Praxisbeispiele
-Mit Series arbeiten / rechnen
-neue Series erstelle und hinzufügen
-mit null Werten arbeiten / entfernen
-direkte Methodenaufrufe Series/ DataFrames
24.
25.
26.
27.
28.
29. Series/DataFrames verändern
-Funktionen werden nicht auf Series oder DataFrame angewendet,
sondern geben nur das Ergebnis als S/DF zurück
-mit Parameter inplace können Änderungen auf der Serie / DataFrame
direkt angewendet werden
30.
31.
32. NaN Werte & Entfernen
-NaN wird für null Werte verwendet
-series.describe() ignoriert NaN
-NaNs:
-entfernen drop()
-ersetzen mit Standardwerten
- forward- oder backwards-fill, interpolieren
- Series können ebenfalls mit drop() aus dem DF entfernt werden
53. Resampling
-H hourly frequency
-T minutely frequency
-S secondly frequency
-L milliseonds
-U microseconds
-N nanoseconds
-D calendar day frequency
-W weekly frequency
-M month end frequency
-Q quarter end frequency
-A year end frequency
- B business day frequency
- C custom business day frequency (experimental)
- BM business month end frequency
- CBM custom business month end frequency
- MS month start frequency
- BMS business month start frequency
- CBMS custom business month start frequency
- BQ business quarter endfrequency
- QS quarter start frequency
- BQS business quarter start frequency
- BA business year end frequency
- AS year start frequency
- BAS business year start frequency
- BH business hour frequency
54.
55.
56.
57.
58.
59.
60. Bonus: statsmodels
is a Python module that allows users to explore data, estimate statistical models,
and perform statistical tests