51
Introduction to Time Series Analysis with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev

Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Introduction to Time Series Analysis with Pandas

Alexander C. S. Hendorf @hendorf

Ukraine 2016, Kiev

Page 2: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Alexander C. S. Hendorf

Königsweg GmbH

EuroPython organiser + program chair

mongoDB master 2016, MUG Leader

Speaker CEBIT, EuroPython, mongoDB days,PyCon It, PyData…

@hendorf

Page 3: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 4: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

a Python Data Analysis Library

• simple interface • making data analysis fast, efficient and easy • started by Wes McKinney in 2008 • DataFrame object for data manipulation with integrated indexing (R)

Page 5: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

• I/O data from and to csv, Excel, JSON, SQL, SAS, clipboard, HDF5,…

• Reshape & pivot data

• Merge & join data

• Clean up messy data

• High-level building block for doing practical, real world data analysis in Python

• Database like operations

Page 6: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

2014-09-26T03:50:00,14.02014-08-10T05:00:00,142014-08-21T22:50:00,12.02014-08-17T13:20:00,16.02014-08-06T01:20:00,14.02014-09-27T06:50:00,11.02014-08-25T21:50:00,13.02014-08-14T05:20:00,13.02014-09-14T05:20:00,16.02014-08-03T02:50:00,21.02014-09-29T03:00:00,132014-09-06T08:20:00,16.02014-08-19T07:20:00,13.02014-09-27T22:50:00,10.02014-08-28T08:20:00,12.02014-08-17T01:00:00,142014-09-27T14:00:00,172014-09-10T18:00:00,182014-09-22T23:00:00,82014-09-20T03:00:00,9

Page 7: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 8: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 9: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 10: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 11: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 12: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 13: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 14: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9

pd.Series

index

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

pd.DataFrame

1 2 3 4 5 6 7 8 9

df.loc[row_indexer,column_indexer]

s.loc[indexer]

Page 15: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 16: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 17: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 18: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 19: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 20: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 21: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 22: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

• DataSeries & DataFrame

• I/O

• Basic Data Analysis

• Data Aggregation

• Visualisation

• Mangling (map/apply)

Page 23: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Year

12 Months

February

90% of March

31 31

31 31 31

31 31

30

30

30 30

28

Page 24: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

RomanyearusedtostartinMarchandhad10months

2monthstherewas"no"month

solar|topicalyear

quick&funnyexplanation:https://www.youtube.com/watch?v=AgKaHTh-_Gs

Page 25: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

?

Page 26: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 27: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 28: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 29: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 30: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 31: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 32: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 33: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 34: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 35: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 36: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 37: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 38: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 39: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

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

Page 40: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

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

Page 41: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 42: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 43: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 44: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 45: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 46: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 47: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Statsmodels

is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests

Page 48: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Somesalesdataofasingleproduct

Page 49: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser
Page 50: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Attributions

PandaPictureByAiluropodaaten.wikipedia(Transferredfromen.wikipedia)[GFDL(http://www.gnu.org/copyleft/fdl.html),CC-BY-SA-3.0(http://creativecommons.org/licenses/by-sa/3.0/)orCCBY-SA2.5-2.0-1.0(http://creativecommons.org/licenses/by-sa/2.5-2.0-1.0)],fromWikimediaCommons

Page 51: Introduction to Time Series Analysis with Pandas€¦ · with Pandas Alexander C. S. Hendorf @hendorf Ukraine 2016, Kiev. Alexander C. S. Hendorf Königsweg GmbH EuroPython organiser

Alexander C. S. Hendorf

@hendorf

LinkedIn