SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
Einführung Datenanalyse mit Pandas
Alexander C. S. Hendorf
@hendorf
Karlsruhe, Germany
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
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
Haupt-Funktionalitäten
-Datenaustausch via CSV, Excel, JSON, SQL, SAS, clipboard, HDF5,…
-Datenbereinigung
-Daten umformen, zusammenführen (joins & merge) & pivoting
-Daten Visualisierung
-Integration in Jupiter (iPython) Notebooks
-Datenbank-ähnliche Operationen
-Performant
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
2014-08-21T22:50:00,12.0	
2014-08-17T13:20:00,16.0	
2014-08-06T01:20:00,14.0	
2014-09-27T06:50:00,11.0	
2014-08-25T21:50:00,13.0	
2014-08-14T05:20:00,13.0	
2014-09-14T05:20:00,16.0	
2014-08-03T02:50:00,21.0	
2014-09-29T03:00:00,13	
2014-09-06T08:20:00,16.0	
2014-08-19T07:20:00,13.0	
2014-09-27T22:50:00,10.0	
2014-08-28T08:20:00,12.0	
2014-08-17T01:00:00,14	
2014-09-27T14:00:00,17	
2014-09-10T18:00:00,18	
2014-09-22T23:00:00,8	
2014-09-20T03:00:00,9	
2014-08-29T09:50:00,16.0	
2014-08-16T01:50:00,13.0	
2014-08-28T22:00:00,14
Re: I/O und Anzeige
-Konvention import pandas as pd
-Beispiel pd.read_csv()
-Hohe Anpassungsfähigkeit mittels über 40 optionalen
Parametern (delimiter, header, dtype, parse_dates,…)
-Datenvorschau mit .head(Zeilen) und .tail(Zeilen)
ax = df[:100].plot()
ax.axhline(16, color='r', linestyle='-')
df.plot(kind='bar')
Visualisieren
-matplotlib (http://matplotlib.org) integriert, .plot()
-anpass- und erweiterbar, plot() gibt ax zurück
-Balken- (bar), Flächen- (area), Scatter-, Boxplots u.a.
-Modernere Alternativen: 

Bokeh (http://bokeh.pydata.org/en/latest/)

Seaborn (https://stanford.edu/~mwaskom/software/seaborn/index.html)
Aufbau / Struktur
pd.Series
Index
pd.DataFrame
Daten
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
…
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
einfache	Serie,	automatische	Typenerkennung,	Index	automatisch
einfache	Serie,	automatische	Typenerkennung,	Index	automatisch
einfache	Serie,	Typ	vorgegeben,	Index	automatisch
einfache	Serie,	Typ	vorgegeben,	Index	vorgegeben
einfache	Serie,	expliziter	Typ	&	Index
Zugriff	über	Index	/	Bezeichnung	(label)
Zugriff	über	Position	im	Index
Zugriff	auf	mehrere	Elemente	über	Bezeichnung	im	Index
Zugriff	auf	mehrere	Elemente	über	Bereich	im	Index
Zugriff	auf	mehrere	Elemente	über	Position	im	Index
Zugriff	über	Boolischen	Index	via	lambda
.loc()
Index	Label
.iloc()
Index	Position
.ix()
Index	Vermutung
.name
(Spalten-)	Namen
.sample()
Stichprobe
Auswahl
-Slicing
-Boolean Indexing
series[x], series[[x, y]]
series[2], series[[2, 3]], series[2:3]
series.ix() / .iloc() / .loc()
series.sample()
Aufbau / Struktur: DataFrame
-zweidimensionale, bezeichnete Daten Struktur z.B. aus
-DataSeries
-2-D numpy.ndarray
-anderen DataFrames
-automatische Erstellung von index, wenn nicht vorhanden
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!)
Praxisbeispiele
-Mit Series arbeiten / rechnen
-neue Series erstelle und hinzufügen
-mit null Werten arbeiten / entfernen
-direkte Methodenaufrufe Series/ DataFrames
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
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
Daten Aggregation
-describe()
-groupby()
-groupby([]) & unstack()
-mean(), sum(), median(),…
Ende Teil 1
-DataSeries & DataFrame
-I/O
-Einfache Datenanalyse & Aggregation
-Indexe
-Visualisierung
-Interaktion
Zusammenfassung
-DataFrames
-Index
-support of non-unique (!)
Jahr
12 Monate
Februar
90% von März
31 31
31 31 31
31 31
30
30
30 30
28
Roman	year	used	to	start	in	March	and	had	10	months
2	months	there	was	"no"	month
solar	|	topical	year
quick	&	funny	explanation:	https://www.youtube.com/watch?v=AgKaHTh-_Gs
Zeitreihen
-TimeSeriesIndex
-pd.to_datetime() ! US datumsfreundlich
-Datenaggregation Beispiele
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
Bonus: statsmodels
is a Python module that allows users to explore data, estimate statistical models,
and perform statistical tests
Some	sales	data	of	a	single	product
Attributions	
Panda	Picture	
By	Ailuropoda	at	en.wikipedia	(Transferred	from	en.wikipedia)	[GFDL	(http://www.gnu.org/copyleft/fdl.html),	CC-BY-SA-3.0	(http://creativecommons.org/licenses/by-sa/
3.0/)	or	CC	BY-SA	2.5-2.0-1.0	(http://creativecommons.org/licenses/by-sa/2.5-2.0-1.0)],	from	Wikimedia	Commons
Alexander C. S. Hendorf
ah@koenigsweg.com
@hendorf
Code-Beispiele
https://github.com/Koenigsweg/data2day-2016.git

Weitere ähnliche Inhalte

Ähnlich wie Einführung Datenanalyse mit Pandas [data2day]

OPAL - Open Data Portal Germany
OPAL - Open Data Portal GermanyOPAL - Open Data Portal Germany
OPAL - Open Data Portal GermanyAdrian Wilke
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataDai Yang
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultTrivadis
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?MT AG
 
Do you know what k-Means? Cluster-Analysen
Do you know what k-Means? Cluster-Analysen Do you know what k-Means? Cluster-Analysen
Do you know what k-Means? Cluster-Analysen Harald Erb
 
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen ExtraktionWebinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen ExtraktionCONOGY GmbH
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...AboutYouGmbH
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jPatrick Baumgartner
 
Tk roadschow-icinga-pdeneu
Tk roadschow-icinga-pdeneuTk roadschow-icinga-pdeneu
Tk roadschow-icinga-pdeneuWerner Fischer
 
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformAnalytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformRising Media Ltd.
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Enginedrubb
 
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd Erk
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd ErkOSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd Erk
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd ErkNETWAYS
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael StrebNagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael StrebNETWAYS
 
Big Data Webinar (Deutsch)
Big Data Webinar (Deutsch)Big Data Webinar (Deutsch)
Big Data Webinar (Deutsch)AWS Germany
 
A fool with a tool
A fool with a toolA fool with a tool
A fool with a toolMarkus Uhl
 

Ähnlich wie Einführung Datenanalyse mit Pandas [data2day] (20)

OPAL - Open Data Portal Germany
OPAL - Open Data Portal GermanyOPAL - Open Data Portal Germany
OPAL - Open Data Portal Germany
 
LAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global DataLAIK: A Library for Fault Tolerant Distribution of Global Data
LAIK: A Library for Fault Tolerant Distribution of Global Data
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data Vault
 
Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?Ist Gradle auch für die APEX-Projekte?
Ist Gradle auch für die APEX-Projekte?
 
Do you know what k-Means? Cluster-Analysen
Do you know what k-Means? Cluster-Analysen Do you know what k-Means? Cluster-Analysen
Do you know what k-Means? Cluster-Analysen
 
APEX 5.0, und sonst?
APEX 5.0, und sonst?APEX 5.0, und sonst?
APEX 5.0, und sonst?
 
Performance-Analyse mit Bordmitteln
Performance-Analyse mit BordmittelnPerformance-Analyse mit Bordmitteln
Performance-Analyse mit Bordmitteln
 
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen ExtraktionWebinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
Webinar: S/4HANA Extraktion: Änderungen im Vergleich zur klassischen Extraktion
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
 
Daten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4jDaten natuerlich modellieren und verarbeiten mit Neo4j
Daten natuerlich modellieren und verarbeiten mit Neo4j
 
SAP BW/4HANA - Ein Überblick
SAP BW/4HANA - Ein ÜberblickSAP BW/4HANA - Ein Überblick
SAP BW/4HANA - Ein Überblick
 
Tk roadschow-icinga-pdeneu
Tk roadschow-icinga-pdeneuTk roadschow-icinga-pdeneu
Tk roadschow-icinga-pdeneu
 
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-PlattformAnalytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
Analytics meets Big Data – R/Python auf der Hadoop/Spark-Plattform
 
Der Schnitt
Der SchnittDer Schnitt
Der Schnitt
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Engine
 
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd Erk
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd ErkOSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd Erk
OSMC 2008 | Aufbau eines Nagios Reporting Frameworks by Bernd Erk
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael StrebNagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
 
Big Data Webinar (Deutsch)
Big Data Webinar (Deutsch)Big Data Webinar (Deutsch)
Big Data Webinar (Deutsch)
 
A fool with a tool
A fool with a toolA fool with a tool
A fool with a tool
 

Mehr von Alexander Hendorf

Deep Learning for Fun and Profit [PyConDE 2018]
Deep Learning for Fun and Profit [PyConDE 2018]Deep Learning for Fun and Profit [PyConDE 2018]
Deep Learning for Fun and Profit [PyConDE 2018]Alexander Hendorf
 
Agile Datenanalsyse - der schnelle Weg zum Mehrwert
Agile Datenanalsyse - der schnelle Weg zum MehrwertAgile Datenanalsyse - der schnelle Weg zum Mehrwert
Agile Datenanalsyse - der schnelle Weg zum MehrwertAlexander Hendorf
 
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]Alexander Hendorf
 
Introduction to Pandas and Time Series Analysis [PyCon DE]
Introduction to Pandas and Time Series Analysis [PyCon DE]Introduction to Pandas and Time Series Analysis [PyCon DE]
Introduction to Pandas and Time Series Analysis [PyCon DE]Alexander Hendorf
 
Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]Alexander Hendorf
 
Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]Alexander Hendorf
 
NoSQL oder: Freiheit ist nicht schmerzfrei - IT Tage
NoSQL oder: Freiheit ist nicht schmerzfrei - IT TageNoSQL oder: Freiheit ist nicht schmerzfrei - IT Tage
NoSQL oder: Freiheit ist nicht schmerzfrei - IT TageAlexander Hendorf
 
Neat Analytics with Pandas 4 3 [PyParis]
Neat Analytics with Pandas 4 3 [PyParis]Neat Analytics with Pandas 4 3 [PyParis]
Neat Analytics with Pandas 4 3 [PyParis]Alexander Hendorf
 
Data analysis and visualization with mongo db [mongodb world 2016]
Data analysis and visualization with mongo db [mongodb world 2016]Data analysis and visualization with mongo db [mongodb world 2016]
Data analysis and visualization with mongo db [mongodb world 2016]Alexander Hendorf
 
Time travel and time series analysis with pandas + statsmodels
Time travel and time series analysis with pandas + statsmodelsTime travel and time series analysis with pandas + statsmodels
Time travel and time series analysis with pandas + statsmodelsAlexander Hendorf
 
Data mangling with mongo db the right way [pyconit 2016]
Data mangling with mongo db the right way [pyconit 2016]Data mangling with mongo db the right way [pyconit 2016]
Data mangling with mongo db the right way [pyconit 2016]Alexander Hendorf
 

Mehr von Alexander Hendorf (12)

Deep Learning for Fun and Profit [PyConDE 2018]
Deep Learning for Fun and Profit [PyConDE 2018]Deep Learning for Fun and Profit [PyConDE 2018]
Deep Learning for Fun and Profit [PyConDE 2018]
 
Databases for Data Science
Databases for Data ScienceDatabases for Data Science
Databases for Data Science
 
Agile Datenanalsyse - der schnelle Weg zum Mehrwert
Agile Datenanalsyse - der schnelle Weg zum MehrwertAgile Datenanalsyse - der schnelle Weg zum Mehrwert
Agile Datenanalsyse - der schnelle Weg zum Mehrwert
 
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
Introduction to Pandas and Time Series Analysis [Budapest BI Forum]
 
Introduction to Pandas and Time Series Analysis [PyCon DE]
Introduction to Pandas and Time Series Analysis [PyCon DE]Introduction to Pandas and Time Series Analysis [PyCon DE]
Introduction to Pandas and Time Series Analysis [PyCon DE]
 
Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]
 
Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]Introduction to Data Analtics with Pandas [PyCon Cz]
Introduction to Data Analtics with Pandas [PyCon Cz]
 
NoSQL oder: Freiheit ist nicht schmerzfrei - IT Tage
NoSQL oder: Freiheit ist nicht schmerzfrei - IT TageNoSQL oder: Freiheit ist nicht schmerzfrei - IT Tage
NoSQL oder: Freiheit ist nicht schmerzfrei - IT Tage
 
Neat Analytics with Pandas 4 3 [PyParis]
Neat Analytics with Pandas 4 3 [PyParis]Neat Analytics with Pandas 4 3 [PyParis]
Neat Analytics with Pandas 4 3 [PyParis]
 
Data analysis and visualization with mongo db [mongodb world 2016]
Data analysis and visualization with mongo db [mongodb world 2016]Data analysis and visualization with mongo db [mongodb world 2016]
Data analysis and visualization with mongo db [mongodb world 2016]
 
Time travel and time series analysis with pandas + statsmodels
Time travel and time series analysis with pandas + statsmodelsTime travel and time series analysis with pandas + statsmodels
Time travel and time series analysis with pandas + statsmodels
 
Data mangling with mongo db the right way [pyconit 2016]
Data mangling with mongo db the right way [pyconit 2016]Data mangling with mongo db the right way [pyconit 2016]
Data mangling with mongo db the right way [pyconit 2016]
 

Einführung Datenanalyse mit Pandas [data2day]