{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## The incidence of chickenpox in France (2016-2024)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data on the incidence of chickenpox-like illness are available from the Web site of the [Réseau Sentinelles](http://www.sentiweb.fr/). We download them as a file in CSV format, in which each line corresponds to a week in the observation period. The dataset used is starting in 2016 and ends with 2024." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: isoweek in /opt/conda/lib/python3.6/site-packages (1.3.3)\r\n" ] } ], "source": [ "!pip install isoweek" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import os\n", "from isoweek import Week\n", "from datetime import datetime, timedelta" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "data_url = \"https://www.sentiweb.fr/datasets/all/inc-7-RDD-ds2.csv\"\n", "filename = \"inc-7-PAY-ds2.csv\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Download -> if there is not a local file already" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "if not os.path.exists(filename):\n", " raw_data = pd.read_csv(data_url, skiprows=1)\n", "else:\n", " raw_data = pd.read_csv(filename)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Remove rows with missing values" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
weekgeo_inseeindicatorincinc100inc_upinc_lowinc100_upinc100_low
020160144757410861287155
120160175715132520999273515
2201601847236330295817683722
32016012776862410583143611
420160153753216874190266
520160124739415625163246
62016019473812820250
7201601117303025378822723119
8201601767842141307377226
9201601327210034271114894424
1020160128741812687149204
1120160152710292715774814213
1220160193710532114576492913
13201602447772141122422207
14201602757657111016298175
15201602847148619192810442413
1620160227744215727157255
1720160253744413744144224
1820160224740215627177247
19201602947124420130
20201602117174514231711731910
2120160276711011916445582810
2220160232712492017207782813
2320160228710643115196094418
2420160252740811708108193
25201602937157031209910414221
26201603447985171442528259
27201603757207034276913714623
28201603847225828281017063521
2920160327710093515384805317
..............................
6379202522327300195030
6380202522287000000
638120252252719855280130
638220252293712542430980590
6383202523447413710900190
6384202523757442711170180
63852025238471148142156140262
6386202523277000000
638720252353714343940110
6388202523247272106670250
638920252394737101040290
63902025231179057176347140
6391202523767751435070
6392202523327527912260200
63932025232871083321090
6394202523527000000
6395202523937336611300220
639620252444719637410130
63972025247571442516080
63982025248478241017450210
6399202524277000000
640020252453716454300120
64012025242477102714230540
6402202524947288940260
6403202524117913719460160
6404202524767000000
64052025243271462507080
640620252428714044410130
6407202524527000000
640820252493731969950190
\n", "

6409 rows × 9 columns

\n", "
" ], "text/plain": [ " week geo_insee indicator inc inc100 inc_up inc_low inc100_up \\\n", "0 201601 44 7 574 10 861 287 15 \n", "1 201601 75 7 1513 25 2099 927 35 \n", "2 201601 84 7 2363 30 2958 1768 37 \n", "3 201601 27 7 686 24 1058 314 36 \n", "4 201601 53 7 532 16 874 190 26 \n", "5 201601 24 7 394 15 625 163 24 \n", "6 201601 94 7 38 12 82 0 25 \n", "7 201601 11 7 3030 25 3788 2272 31 \n", "8 201601 76 7 842 14 1307 377 22 \n", "9 201601 32 7 2100 34 2711 1489 44 \n", "10 201601 28 7 418 12 687 149 20 \n", "11 201601 52 7 1029 27 1577 481 42 \n", "12 201601 93 7 1053 21 1457 649 29 \n", "13 201602 44 7 772 14 1122 422 20 \n", "14 201602 75 7 657 11 1016 298 17 \n", "15 201602 84 7 1486 19 1928 1044 24 \n", "16 201602 27 7 442 15 727 157 25 \n", "17 201602 53 7 444 13 744 144 22 \n", "18 201602 24 7 402 15 627 177 24 \n", "19 201602 94 7 12 4 42 0 13 \n", "20 201602 11 7 1745 14 2317 1173 19 \n", "21 201602 76 7 1101 19 1644 558 28 \n", "22 201602 32 7 1249 20 1720 778 28 \n", "23 201602 28 7 1064 31 1519 609 44 \n", "24 201602 52 7 408 11 708 108 19 \n", "25 201602 93 7 1570 31 2099 1041 42 \n", "26 201603 44 7 985 17 1442 528 25 \n", "27 201603 75 7 2070 34 2769 1371 46 \n", "28 201603 84 7 2258 28 2810 1706 35 \n", "29 201603 27 7 1009 35 1538 480 53 \n", "... ... ... ... ... ... ... ... ... \n", "6379 202522 32 7 30 0 195 0 3 \n", "6380 202522 28 7 0 0 0 0 0 \n", "6381 202522 52 7 198 5 528 0 13 \n", "6382 202522 93 7 1254 24 3098 0 59 \n", "6383 202523 44 7 413 7 1090 0 19 \n", "6384 202523 75 7 442 7 1117 0 18 \n", "6385 202523 84 7 1148 14 2156 140 26 \n", "6386 202523 27 7 0 0 0 0 0 \n", "6387 202523 53 7 143 4 394 0 11 \n", "6388 202523 24 7 272 10 667 0 25 \n", "6389 202523 94 7 37 10 104 0 29 \n", "6390 202523 11 7 905 7 1763 47 14 \n", "6391 202523 76 7 75 1 435 0 7 \n", "6392 202523 32 7 527 9 1226 0 20 \n", "6393 202523 28 7 108 3 321 0 9 \n", "6394 202523 52 7 0 0 0 0 0 \n", "6395 202523 93 7 336 6 1130 0 22 \n", "6396 202524 44 7 196 3 741 0 13 \n", "6397 202524 75 7 144 2 516 0 8 \n", "6398 202524 84 7 824 10 1745 0 21 \n", "6399 202524 27 7 0 0 0 0 0 \n", "6400 202524 53 7 164 5 430 0 12 \n", "6401 202524 24 7 710 27 1423 0 54 \n", "6402 202524 94 7 28 8 94 0 26 \n", "6403 202524 11 7 913 7 1946 0 16 \n", "6404 202524 76 7 0 0 0 0 0 \n", "6405 202524 32 7 146 2 507 0 8 \n", "6406 202524 28 7 140 4 441 0 13 \n", "6407 202524 52 7 0 0 0 0 0 \n", "6408 202524 93 7 319 6 995 0 19 \n", "\n", " inc100_low \n", "0 5 \n", "1 15 \n", "2 22 \n", "3 11 \n", "4 6 \n", "5 6 \n", "6 0 \n", "7 19 \n", "8 6 \n", "9 24 \n", "10 4 \n", "11 13 \n", "12 13 \n", "13 7 \n", "14 5 \n", "15 13 \n", "16 5 \n", "17 4 \n", "18 7 \n", "19 0 \n", "20 10 \n", "21 10 \n", "22 13 \n", "23 18 \n", "24 3 \n", "25 21 \n", "26 9 \n", "27 23 \n", "28 21 \n", "29 17 \n", "... ... \n", "6379 0 \n", "6380 0 \n", "6381 0 \n", "6382 0 \n", "6383 0 \n", "6384 0 \n", "6385 2 \n", "6386 0 \n", "6387 0 \n", "6388 0 \n", "6389 0 \n", "6390 0 \n", "6391 0 \n", "6392 0 \n", "6393 0 \n", "6394 0 \n", "6395 0 \n", "6396 0 \n", "6397 0 \n", "6398 0 \n", "6399 0 \n", "6400 0 \n", "6401 0 \n", "6402 0 \n", "6403 0 \n", "6404 0 \n", "6405 0 \n", "6406 0 \n", "6407 0 \n", "6408 0 \n", "\n", "[6409 rows x 9 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "raw_data[raw_data.isnull().any(axis=1)]\n", "raw_data = raw_data.dropna()\n", "raw_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Convert 'week' to period " ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "def convert_week(yw):\n", " y = int(str(yw)[:4])\n", " w = int(str(yw)[4:])\n", " return pd.Period(Week(y, w).monday(), 'W')\n", "\n", "raw_data['period'] = raw_data['week'].apply(convert_week)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Set 'period' as index and sort the dataset" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "sorted_data = raw_data.set_index('period').sort_index()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Choose September 1st as the beginning of each annual period" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "start_weeks = [pd.Period(pd.Timestamp(y, 9, 1), 'W') for y in range(2016, 2025)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Collect the incidence per year information" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "Cannot compare type 'Period' with type 'int'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mtotals\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mw1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw2\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart_weeks\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart_weeks\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mseason_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msorted_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'inc'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mw1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mw2\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mabs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseason_data\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m52\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mtotals\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mseason_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 662\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcheck_bool_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 663\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 664\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_with\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 665\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 666\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_get_with\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/series.py\u001b[0m in \u001b[0;36m_get_with\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 667\u001b[0m \u001b[0;31m# other: fancy integer or otherwise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 668\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 669\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_slice_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'getitem'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 670\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 671\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mABCDataFrame\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_convert_slice_indexer\u001b[0;34m(self, key, kind)\u001b[0m\n\u001b[1;32m 1462\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1463\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1464\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mslice_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1465\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1466\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_index_slice\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mslice_indexer\u001b[0;34m(self, start, end, step, kind)\u001b[0m\n\u001b[1;32m 3455\u001b[0m \"\"\"\n\u001b[1;32m 3456\u001b[0m start_slice, end_slice = self.slice_locs(start, end, step=step,\n\u001b[0;32m-> 3457\u001b[0;31m kind=kind)\n\u001b[0m\u001b[1;32m 3458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3459\u001b[0m \u001b[0;31m# return a slice\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mslice_locs\u001b[0;34m(self, start, end, step, kind)\u001b[0m\n\u001b[1;32m 3656\u001b[0m \u001b[0mstart_slice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3657\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mstart\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3658\u001b[0;31m \u001b[0mstart_slice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_slice_bound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'left'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3659\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mstart_slice\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3660\u001b[0m \u001b[0mstart_slice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mget_slice_bound\u001b[0;34m(self, label, side, kind)\u001b[0m\n\u001b[1;32m 3586\u001b[0m \u001b[0;31m# we need to look up the label\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3587\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3588\u001b[0;31m \u001b[0mslc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_loc_only_exact_matches\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3589\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3590\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_get_loc_only_exact_matches\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 3555\u001b[0m \u001b[0mget_slice_bound\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3556\u001b[0m \"\"\"\n\u001b[0;32m-> 3557\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3558\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3559\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_slice_bound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mside\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexes/period.py\u001b[0m in \u001b[0;36mget_loc\u001b[0;34m(self, key, method, tolerance)\u001b[0m\n\u001b[1;32m 810\u001b[0m \"\"\"\n\u001b[1;32m 811\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 812\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_loc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 813\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 814\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_integer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mpandas/_libs/index.pyx\u001b[0m in \u001b[0;36mpandas._libs.index.IndexEngine._get_loc_duplicates\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mpandas/_libs/period.pyx\u001b[0m in \u001b[0;36mpandas._libs.period._Period.__richcmp__\u001b[0;34m()\u001b[0m\n", "\u001b[0;31mTypeError\u001b[0m: Cannot compare type 'Period' with type 'int'" ] } ], "source": [ "years = []\n", "totals = []\n", "for w1, w2 in zip(start_weeks[:-1], start_weeks[1:]):\n", " season_data = sorted_data['inc'][w1:w2 - 1]\n", " if abs(len(season_data) - 52) < 3:\n", " totals.append(season_data.sum())\n", " years.append(w2.year)\n", "\n", "yearly_incidence = pd.Series(data=totals, index=years)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "Empty 'DataFrame': no numeric data to plot", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0myearly_incidence\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstyle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'o-'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Annual Chickenpox Incidence'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Total incidence\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Year\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, kind, ax, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, label, secondary_y, **kwds)\u001b[0m\n\u001b[1;32m 2501\u001b[0m \u001b[0mcolormap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcolormap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0myerr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2502\u001b[0m \u001b[0mxerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mxerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msecondary_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msecondary_y\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2503\u001b[0;31m **kwds)\n\u001b[0m\u001b[1;32m 2504\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplot_series\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2505\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36mplot_series\u001b[0;34m(data, kind, ax, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, label, secondary_y, **kwds)\u001b[0m\n\u001b[1;32m 1925\u001b[0m \u001b[0myerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0myerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mxerr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1926\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msecondary_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msecondary_y\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1927\u001b[0;31m **kwds)\n\u001b[0m\u001b[1;32m 1928\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1929\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m_plot\u001b[0;34m(data, x, y, subplots, ax, kind, **kwds)\u001b[0m\n\u001b[1;32m 1727\u001b[0m \u001b[0mplot_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mklass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubplots\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1729\u001b[0;31m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1730\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1731\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36mgenerate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 248\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_args_adjust\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 250\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_plot_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 251\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setup_subplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 252\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_plot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m_compute_plot_data\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 363\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_empty\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 364\u001b[0m raise TypeError('Empty {0!r}: no numeric data to '\n\u001b[0;32m--> 365\u001b[0;31m 'plot'.format(numeric_data.__class__.__name__))\n\u001b[0m\u001b[1;32m 366\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 367\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnumeric_data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mTypeError\u001b[0m: Empty 'DataFrame': no numeric data to plot" ] } ], "source": [ "yearly_incidence.plot(style='o-', title='Annual Chickenpox Incidence')\n", "plt.ylabel(\"Total incidence\")\n", "plt.xlabel(\"Year\")\n", "plt.grid(True)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "yearly_incidence.hist()\n", "plt.title(\"Distribution of Yearly Incidence\")\n", "plt.xlabel(\"Incidence\")\n", "plt.ylabel(\"Count\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "attempt to get argmax of an empty sequence", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mstrongest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0myearly_incidence\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midxmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mweakest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0myearly_incidence\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midxmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Strongest epidemic year: {strongest}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Weakest epidemic year: {weakest}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/series.py\u001b[0m in \u001b[0;36midxmax\u001b[0;34m(self, axis, skipna, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1367\u001b[0m \"\"\"\n\u001b[1;32m 1368\u001b[0m \u001b[0mskipna\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_argmax_with_skipna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mskipna\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1369\u001b[0;31m \u001b[0mi\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnanops\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnanargmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_values_from_object\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskipna\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mskipna\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1370\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1371\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/nanops.py\u001b[0m in \u001b[0;36m_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 75\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrstate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minvalid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'ignore'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 77\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 78\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mValueError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;31m# we want to transform an object array\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/nanops.py\u001b[0m in \u001b[0;36mnanargmax\u001b[0;34m(values, axis, skipna)\u001b[0m\n\u001b[1;32m 521\u001b[0m \"\"\"\n\u001b[1;32m 522\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskipna\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value_typ\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'-inf'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 523\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 524\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_maybe_arg_null_out\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskipna\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: attempt to get argmax of an empty sequence" ] } ], "source": [ "strongest = yearly_incidence.idxmax()\n", "weakest = yearly_incidence.idxmin()\n", "print(f\"Strongest epidemic year: {strongest}\")\n", "print(f\"Weakest epidemic year: {weakest}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }