From 875e1c141b3001db658129fdce76807c709fde9c Mon Sep 17 00:00:00 2001 From: 93bddc7315f700347e10fb4afd2d4053 <93bddc7315f700347e10fb4afd2d4053@app-learninglab.inria.fr> Date: Tue, 12 May 2020 11:38:59 +0000 Subject: [PATCH] pb avec graph a resoudre --- module3/exo3/exercice.ipynb | 1072 ++++++++++++++++++++++++++++++++++- 1 file changed, 1069 insertions(+), 3 deletions(-) diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb index 0bbbe37..d403457 100644 --- a/module3/exo3/exercice.ipynb +++ b/module3/exo3/exercice.ipynb @@ -1,5 +1,1072 @@ { - "cells": [], + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Concentration de CO2 dans l'atmosphère depuis 1958" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import isoweek\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = pd.read_csv(\"https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/monthly/monthly_in_situ_co2_mlo.csv\", skiprows = 54, sep=r'\\s*,\\s*', engine='python')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Les données ont été extraites le 11/05/2020. \n", + "Les 54 premières lignes correspondent à du texte contenant les références à citer, des explications sur la forme des données ... On les supprime donc pour permettre à Pandas de lire les données sous forme de tableau. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#raw_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Les deux premières lignes contiennent des unités et non des valeurs, on les retire du tableau pour l'instant." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "data = raw_data.iloc[2:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pour ce jeu de données, les 4 premières colonnes sont des dates, et seule la colonne 5 contient des mesures brutes. Nous allons conserver uniquement les informations sur l'année, la date, et la valeur brute de la mesure." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "useful_data = data.iloc[0:758, [0,1,4]]\n", + "#useful_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On vérifie que les données ont un type approprié." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1958.0\n", + " 2.0\n", + " -99.99\n" + ] + } + ], + "source": [ + "print(type(useful_data['Yr'][3]), useful_data['Yr'][3])\n", + "print(type(useful_data['Mn'][3]), useful_data['Mn'][3])\n", + "print(type(useful_data['CO2'][3]), useful_data['CO2'][3])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On voit que la troisième colonne n'est pas bien interprétée, peut être à cause du signe '-'. On essaye de convertir les données." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "useful_data['CO2'] = useful_data['CO2'].astype(float)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Les explications jointes au fichier indiquent que les valeurs manquantes sont remplacées par la valeur -99.99. On souhaite donc supprimer chaque ligne comportant cette valeur." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 3, 7, 11, 75, 76, 77, 750, 751, 752, 753, 754, 755, 756, 757]\n" + ] + } + ], + "source": [ + "liste = []\n", + "for i in range(len(useful_data.index)):\n", + " try:\n", + " if(useful_data['CO2'][useful_data.index[i]] == -99.99):\n", + " liste.append(useful_data.index[i])\n", + " except:\n", + " print(i, ' ', end='')\n", + "print(liste)\n", + "useful_data.drop(liste, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "
YrMnCO2
41958.03.0315.70
51958.04.0317.46
61958.05.0317.51
81958.07.0315.86
91958.08.0314.93
101958.09.0313.21
121958.011.0313.33
131958.012.0314.67
141959.01.0315.58
151959.02.0316.49
161959.03.0316.65
171959.04.0317.72
181959.05.0318.29
191959.06.0318.15
201959.07.0316.54
211959.08.0314.80
221959.09.0313.84
231959.010.0313.33
241959.011.0314.81
251959.012.0315.58
261960.01.0316.43
271960.02.0316.98
281960.03.0317.58
291960.04.0319.03
301960.05.0320.04
311960.06.0319.58
321960.07.0318.18
331960.08.0315.90
341960.09.0314.17
351960.010.0313.83
............
7202017.011.0405.17
7212017.012.0406.75
7222018.01.0408.05
7232018.02.0408.34
7242018.03.0409.25
7252018.04.0410.30
7262018.05.0411.30
7272018.06.0410.88
7282018.07.0408.90
7292018.08.0407.10
7302018.09.0405.59
7312018.010.0405.99
7322018.011.0408.12
7332018.012.0409.23
7342019.01.0410.92
7352019.02.0411.66
7362019.03.0412.00
7372019.04.0413.52
7382019.05.0414.83
7392019.06.0413.96
7402019.07.0411.85
7412019.08.0410.08
7422019.09.0408.55
7432019.010.0408.43
7442019.011.0410.29
7452019.012.0411.85
7462020.01.0413.37
7472020.02.0414.09
7482020.03.0414.51
7492020.04.0416.18
\n", + "

741 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn CO2\n", + "4 1958.0 3.0 315.70\n", + "5 1958.0 4.0 317.46\n", + "6 1958.0 5.0 317.51\n", + "8 1958.0 7.0 315.86\n", + "9 1958.0 8.0 314.93\n", + "10 1958.0 9.0 313.21\n", + "12 1958.0 11.0 313.33\n", + "13 1958.0 12.0 314.67\n", + "14 1959.0 1.0 315.58\n", + "15 1959.0 2.0 316.49\n", + "16 1959.0 3.0 316.65\n", + "17 1959.0 4.0 317.72\n", + "18 1959.0 5.0 318.29\n", + "19 1959.0 6.0 318.15\n", + "20 1959.0 7.0 316.54\n", + "21 1959.0 8.0 314.80\n", + "22 1959.0 9.0 313.84\n", + "23 1959.0 10.0 313.33\n", + "24 1959.0 11.0 314.81\n", + "25 1959.0 12.0 315.58\n", + "26 1960.0 1.0 316.43\n", + "27 1960.0 2.0 316.98\n", + "28 1960.0 3.0 317.58\n", + "29 1960.0 4.0 319.03\n", + "30 1960.0 5.0 320.04\n", + "31 1960.0 6.0 319.58\n", + "32 1960.0 7.0 318.18\n", + "33 1960.0 8.0 315.90\n", + "34 1960.0 9.0 314.17\n", + "35 1960.0 10.0 313.83\n", + ".. ... ... ...\n", + "720 2017.0 11.0 405.17\n", + "721 2017.0 12.0 406.75\n", + "722 2018.0 1.0 408.05\n", + "723 2018.0 2.0 408.34\n", + "724 2018.0 3.0 409.25\n", + "725 2018.0 4.0 410.30\n", + "726 2018.0 5.0 411.30\n", + "727 2018.0 6.0 410.88\n", + "728 2018.0 7.0 408.90\n", + "729 2018.0 8.0 407.10\n", + "730 2018.0 9.0 405.59\n", + "731 2018.0 10.0 405.99\n", + "732 2018.0 11.0 408.12\n", + "733 2018.0 12.0 409.23\n", + "734 2019.0 1.0 410.92\n", + "735 2019.0 2.0 411.66\n", + "736 2019.0 3.0 412.00\n", + "737 2019.0 4.0 413.52\n", + "738 2019.0 5.0 414.83\n", + "739 2019.0 6.0 413.96\n", + "740 2019.0 7.0 411.85\n", + "741 2019.0 8.0 410.08\n", + "742 2019.0 9.0 408.55\n", + "743 2019.0 10.0 408.43\n", + "744 2019.0 11.0 410.29\n", + "745 2019.0 12.0 411.85\n", + "746 2020.0 1.0 413.37\n", + "747 2020.0 2.0 414.09\n", + "748 2020.0 3.0 414.51\n", + "749 2020.0 4.0 416.18\n", + "\n", + "[741 rows x 3 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "useful_data" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "useful_data['period'] = useful_data['Yr']*100 + useful_data['Mn']" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "useful_data['period'] = useful_data['period'].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "useful_data = useful_data.iloc[0:len(useful_data.index), [2,3]]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + "
CO2
period
1958-01-13/1958-01-19315.70
1958-01-20/1958-01-26317.46
1958-01-27/1958-02-02317.51
1958-02-10/1958-02-16315.86
1958-02-17/1958-02-23314.93
1958-02-24/1958-03-02313.21
1958-03-10/1958-03-16313.33
1958-03-17/1958-03-23314.67
1958-12-29/1959-01-04315.58
1959-01-05/1959-01-11316.49
1959-01-12/1959-01-18316.65
1959-01-19/1959-01-25317.72
1959-01-26/1959-02-01318.29
1959-02-02/1959-02-08318.15
1959-02-09/1959-02-15316.54
1959-02-16/1959-02-22314.80
1959-02-23/1959-03-01313.84
1959-03-02/1959-03-08313.33
1959-03-09/1959-03-15314.81
1959-03-16/1959-03-22315.58
1960-01-04/1960-01-10316.43
1960-01-11/1960-01-17316.98
1960-01-18/1960-01-24317.58
1960-01-25/1960-01-31319.03
1960-02-01/1960-02-07320.04
1960-02-08/1960-02-14319.58
1960-02-15/1960-02-21318.18
1960-02-22/1960-02-28315.90
1960-02-29/1960-03-06314.17
1960-03-07/1960-03-13313.83
......
2017-03-13/2017-03-19405.17
2017-03-20/2017-03-26406.75
2018-01-01/2018-01-07408.05
2018-01-08/2018-01-14408.34
2018-01-15/2018-01-21409.25
2018-01-22/2018-01-28410.30
2018-01-29/2018-02-04411.30
2018-02-05/2018-02-11410.88
2018-02-12/2018-02-18408.90
2018-02-19/2018-02-25407.10
2018-02-26/2018-03-04405.59
2018-03-05/2018-03-11405.99
2018-03-12/2018-03-18408.12
2018-03-19/2018-03-25409.23
2018-12-31/2019-01-06410.92
2019-01-07/2019-01-13411.66
2019-01-14/2019-01-20412.00
2019-01-21/2019-01-27413.52
2019-01-28/2019-02-03414.83
2019-02-04/2019-02-10413.96
2019-02-11/2019-02-17411.85
2019-02-18/2019-02-24410.08
2019-02-25/2019-03-03408.55
2019-03-04/2019-03-10408.43
2019-03-11/2019-03-17410.29
2019-03-18/2019-03-24411.85
2019-12-30/2020-01-05413.37
2020-01-06/2020-01-12414.09
2020-01-13/2020-01-19414.51
2020-01-20/2020-01-26416.18
\n", + "

741 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " CO2\n", + "period \n", + "1958-01-13/1958-01-19 315.70\n", + "1958-01-20/1958-01-26 317.46\n", + "1958-01-27/1958-02-02 317.51\n", + "1958-02-10/1958-02-16 315.86\n", + "1958-02-17/1958-02-23 314.93\n", + "1958-02-24/1958-03-02 313.21\n", + "1958-03-10/1958-03-16 313.33\n", + "1958-03-17/1958-03-23 314.67\n", + "1958-12-29/1959-01-04 315.58\n", + "1959-01-05/1959-01-11 316.49\n", + "1959-01-12/1959-01-18 316.65\n", + "1959-01-19/1959-01-25 317.72\n", + "1959-01-26/1959-02-01 318.29\n", + "1959-02-02/1959-02-08 318.15\n", + "1959-02-09/1959-02-15 316.54\n", + "1959-02-16/1959-02-22 314.80\n", + "1959-02-23/1959-03-01 313.84\n", + "1959-03-02/1959-03-08 313.33\n", + "1959-03-09/1959-03-15 314.81\n", + "1959-03-16/1959-03-22 315.58\n", + "1960-01-04/1960-01-10 316.43\n", + "1960-01-11/1960-01-17 316.98\n", + "1960-01-18/1960-01-24 317.58\n", + "1960-01-25/1960-01-31 319.03\n", + "1960-02-01/1960-02-07 320.04\n", + "1960-02-08/1960-02-14 319.58\n", + "1960-02-15/1960-02-21 318.18\n", + "1960-02-22/1960-02-28 315.90\n", + "1960-02-29/1960-03-06 314.17\n", + "1960-03-07/1960-03-13 313.83\n", + "... ...\n", + "2017-03-13/2017-03-19 405.17\n", + "2017-03-20/2017-03-26 406.75\n", + "2018-01-01/2018-01-07 408.05\n", + "2018-01-08/2018-01-14 408.34\n", + "2018-01-15/2018-01-21 409.25\n", + "2018-01-22/2018-01-28 410.30\n", + "2018-01-29/2018-02-04 411.30\n", + "2018-02-05/2018-02-11 410.88\n", + "2018-02-12/2018-02-18 408.90\n", + "2018-02-19/2018-02-25 407.10\n", + "2018-02-26/2018-03-04 405.59\n", + "2018-03-05/2018-03-11 405.99\n", + "2018-03-12/2018-03-18 408.12\n", + "2018-03-19/2018-03-25 409.23\n", + "2018-12-31/2019-01-06 410.92\n", + "2019-01-07/2019-01-13 411.66\n", + "2019-01-14/2019-01-20 412.00\n", + "2019-01-21/2019-01-27 413.52\n", + "2019-01-28/2019-02-03 414.83\n", + "2019-02-04/2019-02-10 413.96\n", + "2019-02-11/2019-02-17 411.85\n", + "2019-02-18/2019-02-24 410.08\n", + "2019-02-25/2019-03-03 408.55\n", + "2019-03-04/2019-03-10 408.43\n", + "2019-03-11/2019-03-17 410.29\n", + "2019-03-18/2019-03-24 411.85\n", + "2019-12-30/2020-01-05 413.37\n", + "2020-01-06/2020-01-12 414.09\n", + "2020-01-13/2020-01-19 414.51\n", + "2020-01-20/2020-01-26 416.18\n", + "\n", + "[741 rows x 1 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def convertIntoPeriod(anneeEtSemaine):\n", + " y = (int)(anneeEtSemaine/100)\n", + " w = (int)(anneeEtSemaine%100)\n", + " per = isoweek.Week(y,w)\n", + " return pd.Period(per.day(0), 'W')\n", + "useful_data['period'] = [convertIntoPeriod(date) for date in useful_data['period']]\n", + "useful_data.set_index('period')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "useful_data['CO2'].plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], "metadata": { "kernelspec": { "display_name": "Python 3", @@ -16,10 +1083,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 } - -- 2.18.1