{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "title : \"Introduction aux structures de données pandas : les Series (tableaux unidimensionnels)\"\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Nous allons découvrir deux structures de données de base de la bibliothèque Pandas : les `Series`, les `DataFrames` (éventuellement les `Index`).\n",
    "\n",
    "Commençons par importer la bibliothèque Pandas (et la bibliotèque NumPy) avec les alias classiques `pd` et `np` :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:47.999878Z",
     "iopub.status.busy": "2026-10-30T08:34:47.999155Z",
     "iopub.status.idle": "2026-10-30T08:34:48.371185Z",
     "shell.execute_reply": "2026-10-30T08:34:48.370276Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Un objet `Series` (une série) est un **tableau à une dimension** capable de stocker n’importe quel type de données (entiers, chaînes de caractères, flottants, objets Python, etc.).  \n",
    "Elle se distingue d’un ndarray NumPy par son indexation.  Dans Numpy, l’indexation est implicite (pour accéder à une donnée on indique la position). Avec une Series, on peut bien sûr utiliser un indice de position mais on peut surtout faire appel à des indices plus explicites identifiés par des labels. Ces labels peuvent être des chaînes de caractères, des dates ou encore des nombres et peuvent être non ordonnés et non uniques."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.375364Z",
     "iopub.status.busy": "2026-10-30T08:34:48.374873Z",
     "iopub.status.idle": "2026-10-30T08:34:48.379319Z",
     "shell.execute_reply": "2026-10-30T08:34:48.378481Z"
    }
   },
   "outputs": [],
   "source": [
    "# ?pd.Series"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Création d'une Series"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut crééer une série à partir \n",
    "\n",
    "- d'une liste de valeurs ou d'un tableau NumPy (les labels sont alors générées automatiquement)\n",
    "- deux listes : une liste (ou array NumPy) de valeurs et une liste de labels\n",
    "- d'un dictionnaire\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## À partir d'une liste/array de valeurs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.382477Z",
     "iopub.status.busy": "2026-10-30T08:34:48.382173Z",
     "iopub.status.idle": "2026-10-30T08:34:48.396407Z",
     "shell.execute_reply": "2026-10-30T08:34:48.395710Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.25\n",
       "1    0.50\n",
       "2    0.75\n",
       "3    1.00\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ma_series = pd.Series( data=[0.25, 0.5, 0.75, 1.0] )\n",
    "display(ma_series)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On voit qu'une Series contient une séquence de valeurs et une séquence d'indices (ici générés automatiquement). \n",
    "Pour accéder à ces deux séquences, on peut utiliser les attributs `values` et `index` de la Series.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.441771Z",
     "iopub.status.busy": "2026-10-30T08:34:48.441483Z",
     "iopub.status.idle": "2026-10-30T08:34:48.446023Z",
     "shell.execute_reply": "2026-10-30T08:34:48.445584Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.25, 0.5 , 0.75, 1.  ])"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=4, step=1)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(ma_series.values) # c'est un tableau numpy\n",
    "display(ma_series.index) # c'est un objet de type Index, créé ici automatiquement"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut accéder à un élément de la série par son `index` (qui est un entier crée automatiquemnt ou passé explicitement):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.447793Z",
     "iopub.status.busy": "2026-10-30T08:34:48.447628Z",
     "iopub.status.idle": "2026-10-30T08:34:48.450932Z",
     "shell.execute_reply": "2026-10-30T08:34:48.450436Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_series[1] "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## À partir de deux listes/array : une liste de valeurs et une liste d'index associés"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.454166Z",
     "iopub.status.busy": "2026-10-30T08:34:48.453946Z",
     "iopub.status.idle": "2026-10-30T08:34:48.458980Z",
     "shell.execute_reply": "2026-10-30T08:34:48.458456Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "France      70\n",
       "USA        320\n",
       "Chine     1200\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie1 = pd.Series( data=[8, 70, 320, 1200], \n",
    "                       index=[\"Suisse\", \"France\", \"USA\", \"Chine\"])\n",
    "ma_serie1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.460980Z",
     "iopub.status.busy": "2026-10-30T08:34:48.460805Z",
     "iopub.status.idle": "2026-10-30T08:34:48.465261Z",
     "shell.execute_reply": "2026-10-30T08:34:48.464769Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([   8,   70,  320, 1200])"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "Index(['Suisse', 'France', 'USA', 'Chine'], dtype='object')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "valeurs = ma_serie1.values   # c'est un tableau numpy\n",
    "etiquettes = ma_serie1.index # c'est un objet de type Index\n",
    "display(valeurs) \n",
    "display(etiquettes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut accéder à une valeur en utilisant son label, un peu comme dans un dictionnaire."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.466984Z",
     "iopub.status.busy": "2026-10-30T08:34:48.466825Z",
     "iopub.status.idle": "2026-10-30T08:34:48.471653Z",
     "shell.execute_reply": "2026-10-30T08:34:48.470964Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "70"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie1[\"France\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Les objets `Index` (i.e. les labels) sont immutables et ne peuvent donc pas être modifiés par l’utilisateur. On peut accéder à une label selon sa position: \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.474384Z",
     "iopub.status.busy": "2026-10-30T08:34:48.474184Z",
     "iopub.status.idle": "2026-10-30T08:34:48.477617Z",
     "shell.execute_reply": "2026-10-30T08:34:48.477095Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'France'"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "etiquettes[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Un `Index` **peut contenir des étiquettes dupliquées**. Les sélections avec des étiquettes en double renverront toutes les occurrences de cette étiquette."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.479479Z",
     "iopub.status.busy": "2026-10-30T08:34:48.479304Z",
     "iopub.status.idle": "2026-10-30T08:34:48.493677Z",
     "shell.execute_reply": "2026-10-30T08:34:48.493177Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "France      70\n",
       "USA        320\n",
       "Chine     1200\n",
       "France    2000\n",
       "dtype: int64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "France      70\n",
       "France    2000\n",
       "dtype: int64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ma_serie1 = pd.Series( data=[8, 70, 320, 1200 , 2000], \n",
    "                       index=[\"Suisse\", \"France\", \"USA\", \"Chine\", \"France\"])\n",
    "display(ma_serie1)\n",
    "display(ma_serie1[\"France\"]) # renvoie les deux valeurs associées à l'étiquette \"France\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## À partir d'un dictionnaire `{ label1: valeur1,  label2: valeur2, ...}`    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.495619Z",
     "iopub.status.busy": "2026-10-30T08:34:48.495438Z",
     "iopub.status.idle": "2026-10-30T08:34:48.500051Z",
     "shell.execute_reply": "2026-10-30T08:34:48.499556Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "France      70\n",
       "USA        320\n",
       "Suisse       8\n",
       "Chine     1200\n",
       "dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie2 = pd.Series( { \"France\" : 70, \"USA\" : 320, \"Suisse\" : 8,\"Chine\" : 1200})\n",
    "ma_serie2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.503640Z",
     "iopub.status.busy": "2026-10-30T08:34:48.503395Z",
     "iopub.status.idle": "2026-10-30T08:34:48.508043Z",
     "shell.execute_reply": "2026-10-30T08:34:48.507575Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "70"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie2[\"France\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Attention, comme les éléments d'un dictionnaire ne sont pas ordonnés, dans l'objet Series les entrées seront ordonnées selon l'ordre d'ajout. On peut ensuite ordonner les éléments de la Series en utilisant la méthode `sort_index()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.510146Z",
     "iopub.status.busy": "2026-10-30T08:34:48.509948Z",
     "iopub.status.idle": "2026-10-30T08:34:48.514540Z",
     "shell.execute_reply": "2026-10-30T08:34:48.514008Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Chine     1200\n",
       "France      70\n",
       "Suisse       8\n",
       "USA        320\n",
       "dtype: int64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie2.sort_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Slicing $\\leadsto$ sélection avec `loc` et `iloc`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pour l’indexation par étiquettes des DataFrame sur les lignes, les opérateurs d’indexation spéciaux `loc` et `iloc` permettent de sélectionner un sous-ensemble de lignes et de colonnes d’un DataFrame avec une notation de type NumPy en utilisant soit des étiquettes d’axes (`loc`), soit des entiers (`iloc`)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Une serie peut être vue comme un **dictionnaire ordonné** ou comme une **liste**, ainsi on peut accéder à un élément en utilisant son label ou son indice."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Considérons le cas suivant :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.516484Z",
     "iopub.status.busy": "2026-10-30T08:34:48.516303Z",
     "iopub.status.idle": "2026-10-30T08:34:48.522650Z",
     "shell.execute_reply": "2026-10-30T08:34:48.522147Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "b    0.50\n",
       "c    0.75\n",
       "d    1.00\n",
       "dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.Series(  data  = [0.25, 0.5, 0.75, 1.0], \n",
    "                   index = ['a' , 'b', 'c' , 'd'])\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.525185Z",
     "iopub.status.busy": "2026-10-30T08:34:48.524966Z",
     "iopub.status.idle": "2026-10-30T08:34:48.534512Z",
     "shell.execute_reply": "2026-10-30T08:34:48.533920Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "Index(['a', 'b', 'c', 'd'], dtype='object')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[('a', 0.25), ('b', 0.5), ('c', 0.75), ('d', 1.0)]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "b    0.50\n",
       "c    0.75\n",
       "d    1.00\n",
       "e    1.25\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Si on voit la Series comme un dictionnaire :\n",
    "\n",
    "display(data['b'])  # On peut accéder à un élément par son index\n",
    "display('a' in data)  # On peut tester l'existence d'une clé\n",
    "display(data.keys()) # On peut récupérer les index\n",
    "display(list(data.items())) # On peut récupérer les couples (index, valeur)\n",
    "data['e'] = 1.25 # On peut ajouter un élément\n",
    "display(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.537080Z",
     "iopub.status.busy": "2026-10-30T08:34:48.536851Z",
     "iopub.status.idle": "2026-10-30T08:34:48.545989Z",
     "shell.execute_reply": "2026-10-30T08:34:48.545528Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_482666/2399729980.py:3: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
      "  display(data[1])  # On peut accéder à un élément par sa position\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "e    1.25\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "b    0.50\n",
       "c    0.75\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Si on voit la Series comme un tableau numpy/liste dont les indices peuvent être des chaînes :\n",
    "\n",
    "display(data[1])  # On peut accéder à un élément par sa position\n",
    "display(data[ ['a', 'e'] ]) # les éléments dont les indices sont 'a' et 'e'\n",
    "display(data[(data > 0.3) & (data < 0.8)]) # masque : `&` pour le `and`, `|` pour le `or` et `~` pour le `not` ;  parenthèses obligatoires"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Cette double vision des indices peut être source de confusion avec le slicing : \n",
    "\n",
    "- si on utilise des indices automatiques, le slicing se fait comme dans Numpy (premier inclus, dernier exclu), \n",
    "- si on utilise comme indices des labels, le dernier est aussi inclus. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.547982Z",
     "iopub.status.busy": "2026-10-30T08:34:48.547797Z",
     "iopub.status.idle": "2026-10-30T08:34:48.558257Z",
     "shell.execute_reply": "2026-10-30T08:34:48.557688Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "b    0.50\n",
       "c    0.75\n",
       "d    1.00\n",
       "e    1.25\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "b    0.50\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "a    0.25\n",
       "b    0.50\n",
       "c    0.75\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(data)\n",
    "display(data[0:2]) # slicing explicite donc on prend les éléments de 0 inclus à 2 exclus\n",
    "display(data['a':'c']) # slicing implicite donc on prend les éléments de 'a' à 'c' inclus"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pire, si les indices sont des entiers, on ne sait pas si pandas interprètes ces nombre comme des indices ou des labels pour le slicing :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.560345Z",
     "iopub.status.busy": "2026-10-30T08:34:48.560163Z",
     "iopub.status.idle": "2026-10-30T08:34:48.564932Z",
     "shell.execute_reply": "2026-10-30T08:34:48.564356Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1000    0.25\n",
       "1100    0.50\n",
       "1200    0.75\n",
       "1300    1.00\n",
       "dtype: float64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = pd.Series( data=[0.25, 0.5, 0.75, 1.0], \n",
    "                   index=[1000, 1100, 1200, 1300] )\n",
    "data2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.566922Z",
     "iopub.status.busy": "2026-10-30T08:34:48.566746Z",
     "iopub.status.idle": "2026-10-30T08:34:48.574880Z",
     "shell.execute_reply": "2026-10-30T08:34:48.574195Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1000    0.25\n",
       "1100    0.50\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "Series([], dtype: float64)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(data2[0:2])       # slicing explicite donc on prend les éléments de la poisition 0 incluse à la position 2 excluse\n",
    "display(data2[1000:1200]) # slicing qui semble implicite, mais comme les indices sont des entiers, il agit comme un slicing explicite donc on prend les éléments de 1000 inclus à 1200 exclu"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "La solution : `loc` et `iloc` : \n",
    "\n",
    "- `loc` permet d'accéder aux éléments en utilisant les labels, \n",
    "- `iloc` permet d'accéder aux éléments en utilisant les indices numériques."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.576906Z",
     "iopub.status.busy": "2026-10-30T08:34:48.576723Z",
     "iopub.status.idle": "2026-10-30T08:34:48.580342Z",
     "shell.execute_reply": "2026-10-30T08:34:48.579795Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.loc[1100] # la valeur de l'élément de label 1100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.582308Z",
     "iopub.status.busy": "2026-10-30T08:34:48.582134Z",
     "iopub.status.idle": "2026-10-30T08:34:48.585814Z",
     "shell.execute_reply": "2026-10-30T08:34:48.585048Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.iloc[1] # la valeur de l'élément d'indice 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.588134Z",
     "iopub.status.busy": "2026-10-30T08:34:48.587602Z",
     "iopub.status.idle": "2026-10-30T08:34:48.592842Z",
     "shell.execute_reply": "2026-10-30T08:34:48.592318Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1000    0.25\n",
       "1100    0.50\n",
       "1200    0.75\n",
       "dtype: float64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.iloc[:3] # les 3 premiers éléments, donc les éléments d'indice 0, 1 et 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ajouter des éléments à une Series / Fusionner deux Series"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pour ajouter un élément à une Series, on peut utiliser la méthode `concat()` :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.594780Z",
     "iopub.status.busy": "2026-10-30T08:34:48.594602Z",
     "iopub.status.idle": "2026-10-30T08:34:48.600029Z",
     "shell.execute_reply": "2026-10-30T08:34:48.599477Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "France      70\n",
       "USA        320\n",
       "Chine     1200\n",
       "France       1\n",
       "USA          4\n",
       "Suisse       3\n",
       "Italie      10\n",
       "dtype: int64"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie1 = pd.Series( data=[8, 70, 320, 1200],\n",
    "                       index=[\"Suisse\", \"France\", \"USA\", \"Chine\"] )\n",
    "ma_serie2 = pd.Series( data=[1,4,3,10],\n",
    "                       index=[\"France\", \"USA\", \"Suisse\", \"Italie\"] )\n",
    "ma_serie3 = pd.concat([ma_serie1, ma_serie2])\n",
    "ma_serie3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On note que certaines labels sont dupliquées, ce qui est autorisé dans une Series."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Supprimer des éléments à une Series"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pour supprimer un élément d'une Series, on peut utiliser la méthode `drop()` et spécifier l'index de l'élément à supprimer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.603244Z",
     "iopub.status.busy": "2026-10-30T08:34:48.602612Z",
     "iopub.status.idle": "2026-10-30T08:34:48.608714Z",
     "shell.execute_reply": "2026-10-30T08:34:48.608049Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "USA        320\n",
       "Chine     1200\n",
       "USA          4\n",
       "Suisse       3\n",
       "Italie      10\n",
       "dtype: int64"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie3.drop(\"France\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Par default la méthode drop ne modifie pas la Series, mais renvoie une nouvelle Series sans l'élément supprimé. Pour modifier la Series, on peut utiliser l'argument `inplace=True`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.610742Z",
     "iopub.status.busy": "2026-10-30T08:34:48.610569Z",
     "iopub.status.idle": "2026-10-30T08:34:48.614896Z",
     "shell.execute_reply": "2026-10-30T08:34:48.614397Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "France      70\n",
       "USA        320\n",
       "Chine     1200\n",
       "France       1\n",
       "USA          4\n",
       "Suisse       3\n",
       "Italie      10\n",
       "dtype: int64"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.616749Z",
     "iopub.status.busy": "2026-10-30T08:34:48.616593Z",
     "iopub.status.idle": "2026-10-30T08:34:48.621826Z",
     "shell.execute_reply": "2026-10-30T08:34:48.621160Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Suisse       8\n",
       "USA        320\n",
       "Chine     1200\n",
       "USA          4\n",
       "Suisse       3\n",
       "Italie      10\n",
       "dtype: int64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ma_serie3.drop(\"France\", inplace=True)\n",
    "ma_serie3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tableau comparatif entre `list`, `dict`, `numpy.ndarray` et `pandas.Series`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "| Aspect | `list` | `dict` | `np.ndarray` | `pd.Series` |\n",
    "|-------|------------------|------------------|-------------------|------------------|\n",
    "| Type d’accès | Par **indice entier** | Par **clé (=label)** | Par **indice entier** | Par **label** (`loc`) ou **position** (`iloc`) |\n",
    "| Slicing | ✔️ `lst[1:3]` | ❌ Impossible | ✔️ `arr[1:3]` | ✔️ `s.iloc[1:3]` (par positions) <br> ✔️ `s.loc[\"a\":\"c\"]` (par labels) |\n",
    "| Homogénéité | ❌ Hétérogène permis | ❌ Hétérogène permis | ✔️ Homogène | ✔️ Souvent homogène |\n",
    "| Opérations vectorisées | ❌ Non | ❌ Non | ✔️ Oui | ✔️ Oui |\n",
    "| Utilisation typique | Séquences | Mapping clé→valeur | Calcul scientifique | Données tabulaires 1D indexées |\n",
    "\n",
    "\n",
    "⚠️ Note importante :\n",
    "\n",
    "- `iloc[1:4]` exclut la fin → l'élément d'index 4 est non inclus.\n",
    "- `loc[\"b\":\"d\"]` inclut la fin → l'élément de label \"d\" est inclus.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.624262Z",
     "iopub.status.busy": "2026-10-30T08:34:48.624068Z",
     "iopub.status.idle": "2026-10-30T08:34:48.628405Z",
     "shell.execute_reply": "2026-10-30T08:34:48.627967Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[20, 30, 40]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LISTE\n",
    "# =====================================\n",
    "\n",
    "lst = [10, 20, 30, 40, 50]\n",
    "\n",
    "# Accès\n",
    "display(lst[0])    \n",
    "\n",
    "# Slicing\n",
    "display(lst[1:4]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.630186Z",
     "iopub.status.busy": "2026-10-30T08:34:48.630021Z",
     "iopub.status.idle": "2026-10-30T08:34:48.633334Z",
     "shell.execute_reply": "2026-10-30T08:34:48.632860Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# DICTIONNAIRE\n",
    "# =====================================\n",
    "\n",
    "d = {\"a\": 10, \"b\": 20, \"c\": 30}\n",
    "\n",
    "# Accès \n",
    "display(d[\"a\"]) \n",
    "# d[0]        # Pas d'accès positionnel\n",
    "\n",
    "# d[\"a\":\"c\"]  # Pas de slicing "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.636426Z",
     "iopub.status.busy": "2026-10-30T08:34:48.635849Z",
     "iopub.status.idle": "2026-10-30T08:34:48.642802Z",
     "shell.execute_reply": "2026-10-30T08:34:48.642244Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([20, 30, 40])"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TABLEAU NUMPY\n",
    "# =====================================\n",
    "import numpy as np\n",
    "\n",
    "arr = np.array([10, 20, 30, 40, 50])\n",
    "\n",
    "# Accès\n",
    "display(arr[0]) \n",
    "\n",
    "# Slicing \n",
    "display(arr[1:4]) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.644813Z",
     "iopub.status.busy": "2026-10-30T08:34:48.644633Z",
     "iopub.status.idle": "2026-10-30T08:34:48.654493Z",
     "shell.execute_reply": "2026-10-30T08:34:48.653876Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "b    40\n",
       "c    30\n",
       "d    50\n",
       "dtype: int64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "b    40\n",
       "c    30\n",
       "d    50\n",
       "dtype: int64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# PANDAS SERIES\n",
    "# =====================================\n",
    "import pandas as pd\n",
    "\n",
    "s = pd.Series([20, 40, 30, 50, 20],\n",
    "              index=[\"a\", \"b\", \"c\", \"d\", \"e\"])\n",
    "\n",
    "# Accès\n",
    "display(s.iloc[0]) # par position     \n",
    "display(s[\"a\"])    # par label         \n",
    "\n",
    "# Slicing \n",
    "display(s.iloc[1:4])    # par positions  \n",
    "display(s.loc[\"b\":\"d\"]) # par labels (INCLUSIF !)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Représentation graphique d'une Series"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut appliquer la méthode `plot()` directement à une Serie :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:48.657102Z",
     "iopub.status.busy": "2026-10-30T08:34:48.656822Z",
     "iopub.status.idle": "2026-10-30T08:34:49.091510Z",
     "shell.execute_reply": "2026-10-30T08:34:49.091000Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "s.plot();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Le code équivalent avec matplotlib serait:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:49.093455Z",
     "iopub.status.busy": "2026-10-30T08:34:49.093221Z",
     "iopub.status.idle": "2026-10-30T08:34:49.193575Z",
     "shell.execute_reply": "2026-10-30T08:34:49.193172Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(s.index, s.values);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut personnaliser le graphique en utilisant les arguments de la méthode `plot()` de pandas ou en utilisant les fonctions de matplotlib après avoir récupéré les données de la Series."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On peut tracer différents types de graphiques en utilisant l'argument `kind` de la méthode `plot()` : `bar` pour un graphique en barres, `hist` pour un histogramme, `box` pour un diagramme en boîte, etc. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:49.195210Z",
     "iopub.status.busy": "2026-10-30T08:34:49.195051Z",
     "iopub.status.idle": "2026-10-30T08:34:49.327879Z",
     "shell.execute_reply": "2026-10-30T08:34:49.327425Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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7XpZlmUtW7bMWrRoUfQ2ZbC/+7u/s/7zP/+TvrKhs1aWRU915ezZs9aUKVMsj8dj3XXXXdaaNWssy+J7Vle6q5Vl0VudXnjhBWvmzJldPmdCT/EKSxfOnDkjSRo/frwk6fjx42ptbVVeXl5wjsvl0l133aX9+/dHZY8m+Xa9OtXW1mrixIn67ne/q8cee0xtbW3R2J4xLl++rD179uj8+fPKzs6mr3rw7Vp1oqdCrV69Wvfff7/uvffekHF6K1x3tepEb11x9OhRTZo0Sampqfqnf/on/fGPf5RkRk/16a81j2SWZamoqEg/+MEPNH36dEkK/mHGb/8xxoSEBP3pT38a8j2apKt6SVJ+fr4eeughpaSk6Pjx41q/fr1++MMf6uDBg9fcb5X84osvlJ2drQsXLuhv//ZvtXfvXqWlpQX/J6ev/qq7Wkn01Lft2bNHn332mT799NOw5/ieFaqnWkn0Vqc5c+Zo165d+u53v6v//d//1b/9278pJydHX375pRE9RWD5lieeeEKff/55l3/HyOFwhBxblhU2dq3prl4FBQXB/54+fboyMzOVkpKi9957Tz/60Y+GeptRddttt6mpqUnffPONqqqqtGzZMtXV1QWfp6/+qrtapaWl0VNXOXHihNasWaOamhrFxsZ2O4/eslcreuuK/Pz84H/PmDFD2dnZuvXWW/XWW28FP4QczZ7iLaGr/OQnP9FvfvMb/f73v9fNN98cHO/8lHRnwuzU1tYWljavJd3VqytJSUlKSUnR0aNHh2h35hgzZoz+/u//XpmZmdq4caNmzpypLVu20Fdd6K5WXbmWe+rgwYNqa2tTRkaGRo8erdGjR6uurk5lZWUaPXp0sH/ord5rdfny5bBzruXeutrf/M3faMaMGTp69KgR368ILLqSEJ944gm98847+t3vfqfU1NSQ51NTU5WYmCiPxxMcu3jxourq6pSTkzPU24263urVldOnT+vEiRNKSkoagh2azbIs+f1++sqGzlp15VruqXvuuUdffPGFmpqago/MzEz9y7/8i5qamnTLLbfQW/9fb7UaNWpU2DnXcm9dze/366uvvlJSUpIZ36+G5KO9hvvXf/1XKz4+3qqtrbW8Xm/w0d7eHpzz8ssvW/Hx8dY777xjffHFF9Y///M/W0lJSZbP54vizqOjt3qdPXvW+ulPf2rt37/fOn78uPX73//eys7Otm666aZrrl5ut9uqr6+3jh8/bn3++efWs88+a8XExFg1NTWWZdFXV+upVvRU7779ky/0VveurhW99Vc//elPrdraWuuPf/yjdeDAAesf//EfrXHjxln/8z//Y1lW9HuKwGJZlqQuH2+++WZwTkdHh/XCCy9YiYmJlsvlsubNm2d98cUX0dt0FPVWr/b2disvL8+68cYbLafTaU2ePNlatmyZ1dzcHN2NR8GPf/xjKyUlxRozZox14403Wvfcc08wrFgWfXW1nmpFT/Xu24GF3ure1bWit/6qoKDASkpKspxOpzVp0iTrRz/6kfXll18Gn492Tzksy7KG5rUcAACAvuEzLAAAwHgEFgAAYDwCCwAAMB6BBQAAGI/AAgAAjEdgAQAAxiOwAAAA4xFYAACA8QgsAADAeAQWAABgPAILAAAwHoEFAAAY7/8BTP8dlP4TB7UAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "s.hist();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:49.329692Z",
     "iopub.status.busy": "2026-10-30T08:34:49.329499Z",
     "iopub.status.idle": "2026-10-30T08:34:49.456305Z",
     "shell.execute_reply": "2026-10-30T08:34:49.455632Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "s.plot(kind='hist');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:49.458210Z",
     "iopub.status.busy": "2026-10-30T08:34:49.458037Z",
     "iopub.status.idle": "2026-10-30T08:34:49.552946Z",
     "shell.execute_reply": "2026-10-30T08:34:49.551606Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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D30o7rrrrqiqqooLLrig2OMNGPHRj1544YW49NJLY+vWrZHL5Xr9wjt06FAxxxuRbrvttrj55pvjueeei4iI6urqqKuri6uuuqrIk40ct9xySzQ1NfVaP+ecc+Kyyy4THwPsiSee6PF406ZNcejQoTjrrLMiIuKf//xnHHPMMTFp0qRijDei/fa3v43LL7885s6dG0888UThG967urqioaEh7r///iJPOHC87dKP5s+fH1VVVbFnz54YPXp0bNu2LR555JGYPHlyPPzww8Ueb8T5/ve/H/Pnz49Zs2bFvffeG/fee2/MmjUrrrvuuvje975X7PFGjLa2thg/fnyv9ZNOOil2795dhIlGloceeqiwzZo1K2pra+Oll16KzZs3x+bNm6O1tTUuvPDCuOSSS4o96ohz4403xq9+9au49dZb4/3vf39hvaamJjZv3lzEyRLI6Dfjxo3L/v73v2dZlmVlZWXZM888k2VZlv31r3/NPvaxjxVztBFp3LhxWVNTU6/1pqambNy4cUWYaGQ644wzsrvuuqvX+p133plVVVUVYaKRq7KyMvvHP/7Ra33r1q3Z+PHjizDRyFZSUpLt2LEjy7IsGzNmTLZ9+/Ysy7Js+/btWT6fL+JkA8+Vj3506NChGDNmTES8+e2+u3btioiI0047LZ599tlijjYiHTp0KCZPntxrfdKkSfH6668XYaKR6aqrroq6urq4/fbbY+fOnbFz585Ys2ZNXHfddfGNb3yj2OONKJ2dnbFnz55e6+3t7dHV1VWEiUa28ePHx/PPP99r/bHHHovTTz+9CBOl456PfjRx4sR48skn4/TTT48pU6bEsmXL4thjj43Vq1cP+z9Ig9GXv/zlWLVqVa+b6FavXh1z584t0lQjz6JFi+KVV16JefPmFW7CPu644+L666+PxYsXF3m6keXSSy+Nr33ta/Gzn/0szj///IiI2LhxY3znO9+J2bNnF3m6kefqq6+O+fPnx5o1ayKXy8WuXbvib3/7WyxcuDB+8IMfFHu8AeW7XfrRX/7yl9i3b1/Mnj07XnjhhfjMZz4TzzzzTIwbNy7uueeeuOiii4o94rD31jv7X3/99bjjjjvi1FNP7fE/2tbW1vjKV74Sv/jFL4o15oj06quvxtNPPx0lJSVRXV09Yr5AazDZv39/LFy4MNasWRP//e9/IyJi1KhRceWVV8ZPf/rTOP7444s84cizZMmSuPnmm+O1116LiDe/YG7hwoXx4x//uMiTDSzxMcBeeeWVOOGEE3zEM5ELL7zwfzoul8vFgw8+OMDTwOC0b9++2L59e2RZFmeccYboKLL9+/fHU089FW+88UacffbZhbfvhzPxAQAk5YZTACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEn9P/wgJ3U1PUoqAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "s.plot(kind='bar');\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ou encore avec plotly :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-30T08:34:49.555308Z",
     "iopub.status.busy": "2026-10-30T08:34:49.555096Z",
     "iopub.status.idle": "2026-10-30T08:34:50.162954Z",
     "shell.execute_reply": "2026-10-30T08:34:50.162429Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "        <script type=\"text/javascript\">\n",
       "        window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
       "        if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
       "        if (typeof require !== 'undefined') {\n",
       "        require.undef(\"plotly\");\n",
       "        requirejs.config({\n",
       "            paths: {\n",
       "                'plotly': ['https://cdn.plot.ly/plotly-2.24.1.min']\n",
       "            }\n",
       "        });\n",
       "        require(['plotly'], function(Plotly) {\n",
       "            window._Plotly = Plotly;\n",
       "        });\n",
       "        }\n",
       "        </script>\n",
       "        "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>                            <div id=\"8b3453b9-0980-445a-80de-2f4d76bd0b37\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                require([\"plotly\"], function(Plotly) {                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"8b3453b9-0980-445a-80de-2f4d76bd0b37\")) {                    Plotly.newPlot(                        \"8b3453b9-0980-445a-80de-2f4d76bd0b37\",                        [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"x=%{x}\\u003cbr\\u003ey=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"\",\"offsetgroup\":\"\",\"orientation\":\"v\",\"showlegend\":false,\"textposition\":\"auto\",\"x\":[\"a\",\"b\",\"c\",\"d\",\"e\"],\"xaxis\":\"x\",\"y\":[20,40,30,50,20],\"yaxis\":\"y\",\"type\":\"bar\"}],                        {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"x\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"y\"}},\"legend\":{\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"relative\"},                        {\"responsive\": true}                    ).then(function(){\n",
       "                            \n",
       "var gd = document.getElementById('8b3453b9-0980-445a-80de-2f4d76bd0b37');\n",
       "var x = new MutationObserver(function (mutations, observer) {{\n",
       "        var display = window.getComputedStyle(gd).display;\n",
       "        if (!display || display === 'none') {{\n",
       "            console.log([gd, 'removed!']);\n",
       "            Plotly.purge(gd);\n",
       "            observer.disconnect();\n",
       "        }}\n",
       "}});\n",
       "\n",
       "// Listen for the removal of the full notebook cells\n",
       "var notebookContainer = gd.closest('#notebook-container');\n",
       "if (notebookContainer) {{\n",
       "    x.observe(notebookContainer, {childList: true});\n",
       "}}\n",
       "\n",
       "// Listen for the clearing of the current output cell\n",
       "var outputEl = gd.closest('.output');\n",
       "if (outputEl) {{\n",
       "    x.observe(outputEl, {childList: true});\n",
       "}}\n",
       "\n",
       "                        })                };                });            </script>        </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import plotly.express as px\n",
    "\n",
    "# Pour la génération automatique de graphiques interactifs dans le polycopié\n",
    "import plotly.io as pio\n",
    "import os\n",
    "if os.getenv(\"QUARTO_OUTPUT_FORMAT\") is not None:\n",
    "    # Export Quarto HTML\n",
    "    pio.renderers.default = \"iframe_connected\"\n",
    "else:\n",
    "    # Notebook interactif\n",
    "    pio.renderers.default = \"notebook_connected\"\n",
    "\n",
    "px.bar(x=s.index, y=s.values)"
   ]
  }
 ],
 "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.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
