{ "cells": [ { "cell_type": "markdown", "id": "3018f39e", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Time Series Anomaly Detection\n", "\n", "\n", "\n", "Feng Li\n", "\n", "School of Statistics and Mathematics\n", "\n", "Central University of Finance and Economics\n", "\n", "[feng.li@cufe.edu.cn](mailto:feng.li@cufe.edu.cn)\n", "\n", "[https://feng.li/python](https://feng.li/python)" ] }, { "cell_type": "markdown", "id": "2b2114ba", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## What do outliers mean?\n", "\n", "![Two types of outliers](figures/tsoutliers.webp)" ] }, { "cell_type": "markdown", "id": "3aec9310", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Are time series outliers all harmful?\n", "\n", "- **Baseline**: Whether outliers are noise or useful signal, it purely depends upon **business objective**. \n", "\n", "\n", "- **Business objective - How to retain Premium customers?**\n", "\n", " Here premium customers can be defined on the basis on their usage (let's consider monthly usage is more then Rs. 5000). Percentage of such customers over total customer base will be very less (let say 3%). So such customer will become outliers as their usages are very much different from the usages (let say Rs. 750) of most of the customers (here 97%). However those outliers are our main data of analysis. So these outliers are good & can't be excluded.\n", " \n", "- **Business objective - To analyse the usage pattern of customers.**\n", "\n", " If we will include above mentioned premium customers (or a customer whose average monthly usage is Rs. 1000 but one month, it has been Rs. 4000 due to some reason) in analyzing usage pattern of all customers then their effect will be bad on model's outcome. Hence these customer's usages are bad outliers & needs to removed these records.\n" ] }, { "cell_type": "markdown", "id": "a01d7c47", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "- **Business objective - To analyse the fraud in shopping using credit cards.**\n", "\n", " If a customer never do any purchases in the night however their is an transaction at 2:00 AM. This transaction is a candidate of good outlier as it may be used to detect fraud.\n", "\n", "- **Business objective - To analyse the transaction of sale for the last 1 year for a product (e.g. Bread)**\n", "\n", " Normally the average units of bread bought in any transaction are 1-8 units. But one week suddenly it has been 10-20 units of bread transaction. On the further investigation it was found that, the people were stocking the bread because they were expecting the storm to hit at that location in that week. If you are interested in looking at sale of bread on regular basis, you may not want to involve a situation which include a storm in your model because it is not a normal behavior. So that weeks' transactions are bad outliers & needs to be removed." ] }, { "cell_type": "markdown", "id": "308c6bb3", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Two types of time series outliers\n", "\n", "### Point outlier\n", "\n", "A point outlier is a datum that behaves unusually in a specific time instance when compared either to the other values in the time series (global outlier), or to its neighboring points (local outlier). " ] }, { "cell_type": "markdown", "id": "2198db2a", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "- Example: are you aware of the Gamestop frenzy? A slew of young retail investors bought GME stock to get back at big hedge funds, driving the stock price way up. That sudden, short-lived spike that occurred due to an unlikely event is an additive (point) outlier. The unexpected growth of a time-based value in a short period (looks like a sudden spike) comes under additive outliers.\n", "![Game Stop](figures/gamestop.webp)" ] }, { "cell_type": "markdown", "id": "6537792d", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Subsequence outlier\n", "\n", "- Consecutive points in time whose joint behavior is unusual, although each observation individually is not necessarily a point outlier. \n", "\n", "- Subsequence outliers can also be global or local, and can affect one (univariate subsequence outlier) or more (multivariate subsequence outlier) time-dependent variables. " ] }, { "cell_type": "markdown", "id": "6db6fa0a", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "![Subsequence](figures/outliersubsequence.png)" ] }, { "cell_type": "markdown", "id": "50f7a255", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Anomaly detection techniques\n", "\n", "\n", "- STL decomposition\n", "\n", "- Classification and Regression Trees (CART)\n", "\n", "- Clustering-based anomaly detection\n", "\n", "- Detection using Forecasting" ] }, { "cell_type": "markdown", "id": "16f9e77d", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## STL decomposition\n", "\n", "- STL stands for seasonal-trend decomposition procedure based on LOESS. This technique gives you the ability to split your time series signal into three parts: seasonal, trend, and residue.\n", "\n", "- It works for seasonal time-series, which is also the most popular type of time series data. To generate an STL decomposition plot, we just use the ever-amazing `statsmodels` to do the heavy lifting for us." ] }, { "cell_type": "markdown", "id": "dcc2af53", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "- Anomaly detection using STL decomposition is simple and robust. It can handle a lot of different situations, and all anomalies can still be intuitively interpreted.\n", "\n", "\n", "- The biggest downside of this technique is rigid tweaking options. Apart from the threshold and maybe the confidence interval, there is not much you can do about it. \n", "\n", "- For example, When you are tracking users on your website that was closed to the public and then was suddenly opened (due to COVID 19). In this case, you should track anomalies that occur before and after launch periods separately.\n", "\n" ] }, { "cell_type": "markdown", "id": "94dddb8c", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Anomaly detection with Sales Data" ] }, { "cell_type": "code", "execution_count": 1, "id": "2768c781", "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from datetime import datetime" ] }, { "cell_type": "code", "execution_count": 2, "id": "ca7608cf", "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
\n", " | Total | \n", "
---|---|
Date | \n", "\n", " |
1986-01-01 | \n", "9034 | \n", "
1986-02-01 | \n", "9596 | \n", "
1986-03-01 | \n", "10558 | \n", "
1986-04-01 | \n", "9002 | \n", "
1986-05-01 | \n", "9239 | \n", "
... | \n", "... | \n", "
2012-08-01 | \n", "14442 | \n", "
2012-09-01 | \n", "13422 | \n", "
2012-10-01 | \n", "13795 | \n", "
2012-11-01 | \n", "13352 | \n", "
2012-12-01 | \n", "12716 | \n", "
324 rows × 1 columns
\n", "\n", " | Total | \n", "
---|---|
Date | \n", "\n", " |
1996-01-01 | \n", "20322 | \n", "
1996-02-01 | \n", "20613 | \n", "
1996-03-01 | \n", "22704 | \n", "
1996-04-01 | \n", "20276 | \n", "
1996-05-01 | \n", "20669 | \n", "
1996-06-01 | \n", "18074 | \n", "
1996-07-01 | \n", "18719 | \n", "
1996-08-01 | \n", "20217 | \n", "
1996-09-01 | \n", "19642 | \n", "
1996-10-01 | \n", "20842 | \n", "
1996-11-01 | \n", "18204 | \n", "
1996-12-01 | \n", "16898 | \n", "
1997-01-01 | \n", "20746 | \n", "
1997-02-01 | \n", "23058 | \n", "
1997-03-01 | \n", "24624 | \n", "
1997-04-01 | \n", "22154 | \n", "
1997-05-01 | \n", "22444 | \n", "
1997-06-01 | \n", "21471 | \n", "
1997-07-01 | \n", "21866 | \n", "
1997-08-01 | \n", "22548 | \n", "
1997-09-01 | \n", "21518 | \n", "
1997-10-01 | \n", "23408 | \n", "
1997-11-01 | \n", "19645 | \n", "
1997-12-01 | \n", "18278 | \n", "
1998-01-01 | \n", "23576 | \n", "
1998-02-01 | \n", "26650 | \n", "
1998-03-01 | \n", "26207 | \n", "
1998-04-01 | \n", "23195 | \n", "
1998-05-01 | \n", "22960 | \n", "
1998-06-01 | \n", "23002 | \n", "
1998-07-01 | \n", "22973 | \n", "
1998-08-01 | \n", "24089 | \n", "
1998-09-01 | \n", "22805 | \n", "
1998-10-01 | \n", "23241 | \n", "
1998-11-01 | \n", "21581 | \n", "
1998-12-01 | \n", "10000 | \n", "
1999-01-01 | \n", "23107 | \n", "
1999-02-01 | \n", "25780 | \n", "
1999-03-01 | \n", "28544 | \n", "
1999-04-01 | \n", "23488 | \n", "
1999-05-01 | \n", "23964 | \n", "
1999-06-01 | \n", "23720 | \n", "
1999-07-01 | \n", "25069 | \n", "
1999-08-01 | \n", "24618 | \n", "
1999-09-01 | \n", "24430 | \n", "
1999-10-01 | \n", "25229 | \n", "
1999-11-01 | \n", "22344 | \n", "
1999-12-01 | \n", "22372 | \n", "
2000-01-01 | \n", "25412 | \n", "
\n", " | Total | \n", "anomaly | \n", "
---|---|---|
Date | \n", "\n", " | \n", " |
1986-01-01 | \n", "9034 | \n", "1 | \n", "
1986-02-01 | \n", "9596 | \n", "1 | \n", "
1986-03-01 | \n", "10558 | \n", "1 | \n", "
1986-04-01 | \n", "9002 | \n", "1 | \n", "
1986-05-01 | \n", "9239 | \n", "1 | \n", "
... | \n", "... | \n", "... | \n", "
2012-08-01 | \n", "14442 | \n", "1 | \n", "
2012-09-01 | \n", "13422 | \n", "1 | \n", "
2012-10-01 | \n", "13795 | \n", "1 | \n", "
2012-11-01 | \n", "13352 | \n", "1 | \n", "
2012-12-01 | \n", "12716 | \n", "1 | \n", "
324 rows × 2 columns
\n", "\n", " | srch_id | \n", "date_time | \n", "site_id | \n", "visitor_location_country_id | \n", "visitor_hist_starrating | \n", "visitor_hist_adr_usd | \n", "prop_country_id | \n", "prop_id | \n", "prop_starrating | \n", "prop_review_score | \n", "... | \n", "comp6_rate_percent_diff | \n", "comp7_rate | \n", "comp7_inv | \n", "comp7_rate_percent_diff | \n", "comp8_rate | \n", "comp8_inv | \n", "comp8_rate_percent_diff | \n", "click_bool | \n", "gross_bookings_usd | \n", "booking_bool | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "63 | \n", "2013-05-23 11:56:25 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
1 | \n", "90 | \n", "2013-04-23 11:12:24 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
2 | \n", "133 | \n", "2013-03-14 11:27:28 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
3 | \n", "148 | \n", "2013-03-21 02:24:03 | \n", "10 | \n", "4 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
4 | \n", "203 | \n", "2013-01-03 20:48:24 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1.0 | \n", "0.0 | \n", "14.0 | \n", "0 | \n", "NaN | \n", "0 | \n", "
5 | \n", "375 | \n", "2013-01-19 16:51:27 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
6 | \n", "712 | \n", "2013-01-26 11:34:23 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
7 | \n", "751 | \n", "2013-04-29 09:39:50 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
8 | \n", "803 | \n", "2013-03-25 19:43:44 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
9 | \n", "932 | \n", "2013-01-02 22:01:57 | \n", "32 | \n", "220 | \n", "4.00 | \n", "246.15 | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
10 | \n", "979 | \n", "2012-12-17 21:37:18 | \n", "15 | \n", "55 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
11 | \n", "1167 | \n", "2013-01-11 07:46:51 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1.0 | \n", "0.0 | \n", "16.0 | \n", "1 | \n", "270.27 | \n", "1 | \n", "
12 | \n", "1296 | \n", "2013-05-19 19:52:42 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
13 | \n", "1656 | \n", "2013-06-27 14:49:05 | \n", "15 | \n", "55 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
14 | \n", "1714 | \n", "2012-11-14 17:18:51 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
15 | \n", "1766 | \n", "2013-01-10 19:22:49 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
16 | \n", "1834 | \n", "2013-03-27 14:49:27 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
17 | \n", "1960 | \n", "2013-05-20 08:14:41 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "-1.0 | \n", "6.0 | \n", "0 | \n", "NaN | \n", "0 | \n", "
18 | \n", "2210 | \n", "2013-06-30 08:49:46 | \n", "5 | \n", "77 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
19 | \n", "2327 | \n", "2013-06-27 19:02:34 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
20 | \n", "2426 | \n", "2013-05-21 18:49:33 | \n", "31 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
21 | \n", "2508 | \n", "2012-11-25 18:24:55 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
22 | \n", "2525 | \n", "2013-04-07 22:42:16 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
23 | \n", "2574 | \n", "2013-05-24 21:03:54 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
24 | \n", "2718 | \n", "2013-05-04 08:31:26 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
25 | \n", "2982 | \n", "2013-01-28 21:14:48 | \n", "5 | \n", "187 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
26 | \n", "3000 | \n", "2013-01-25 16:58:42 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
27 | \n", "3249 | \n", "2012-11-02 16:05:35 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
28 | \n", "3700 | \n", "2013-03-01 18:51:53 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
29 | \n", "3898 | \n", "2013-06-15 10:13:01 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
30 | \n", "3944 | \n", "2012-12-09 11:39:06 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
31 | \n", "4016 | \n", "2012-11-18 22:06:17 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
32 | \n", "4210 | \n", "2012-11-01 03:06:43 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "2.0 | \n", "0 | \n", "NaN | \n", "0 | \n", "
33 | \n", "4212 | \n", "2012-11-25 22:29:04 | \n", "32 | \n", "220 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
34 | \n", "4286 | \n", "2013-01-23 18:36:47 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
35 | \n", "4371 | \n", "2013-02-09 20:24:55 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
36 | \n", "4454 | \n", "2013-05-30 16:19:31 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
37 | \n", "4508 | \n", "2013-04-16 06:05:58 | \n", "5 | \n", "219 | \n", "3.08 | \n", "37.57 | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
38 | \n", "5086 | \n", "2013-04-24 16:54:51 | \n", "5 | \n", "219 | \n", "3.00 | \n", "135.03 | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
39 | \n", "5110 | \n", "2013-01-09 12:24:36 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "16.0 | \n", "1 | \n", "633.92 | \n", "1 | \n", "
40 | \n", "5223 | \n", "2013-05-08 13:46:34 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "1 | \n", "NaN | \n", "0 | \n", "
41 | \n", "5518 | \n", "2012-11-05 21:05:35 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
42 | \n", "5724 | \n", "2013-05-02 18:20:27 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
43 | \n", "5859 | \n", "2012-12-31 11:13:27 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
44 | \n", "5887 | \n", "2013-03-29 23:14:12 | \n", "5 | \n", "123 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
45 | \n", "5927 | \n", "2013-05-17 17:25:15 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
46 | \n", "5972 | \n", "2012-12-18 07:56:34 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
47 | \n", "6085 | \n", "2012-12-20 08:37:44 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
48 | \n", "6281 | \n", "2013-05-08 22:15:41 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
49 | \n", "6290 | \n", "2013-01-24 22:08:31 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "6.0 | \n", "0 | \n", "NaN | \n", "0 | \n", "
50 | \n", "6299 | \n", "2013-05-20 10:25:55 | \n", "14 | \n", "100 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
51 | \n", "6363 | \n", "2012-12-27 11:21:45 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
52 | \n", "6551 | \n", "2013-05-12 06:11:34 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
53 | \n", "6681 | \n", "2013-02-28 15:19:54 | \n", "5 | \n", "219 | \n", "NaN | \n", "NaN | \n", "219 | \n", "104517 | \n", "4 | \n", "4.0 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "0 | \n", "NaN | \n", "0 | \n", "
54 rows × 54 columns
\n", "\n", " | ds | \n", "y | \n", "
---|---|---|
0 | \n", "1986-01-01 | \n", "9034 | \n", "
1 | \n", "1986-02-01 | \n", "9596 | \n", "
2 | \n", "1986-03-01 | \n", "10558 | \n", "
3 | \n", "1986-04-01 | \n", "9002 | \n", "
4 | \n", "1986-05-01 | \n", "9239 | \n", "
... | \n", "... | \n", "... | \n", "
319 | \n", "2012-08-01 | \n", "14442 | \n", "
320 | \n", "2012-09-01 | \n", "13422 | \n", "
321 | \n", "2012-10-01 | \n", "13795 | \n", "
322 | \n", "2012-11-01 | \n", "13352 | \n", "
323 | \n", "2012-12-01 | \n", "12716 | \n", "
324 rows × 2 columns
\n", "