\documentclass[11pt,a4paper]{../../template_cours}
\usepackage{listings}

\usepackage{minted}

\title{Introduction aux données structurées — Le format CSV}
\author{Adrian Amaglio}
\def\thesequence{Données structurées}

\begin{document}
Durée : 1h

% Retours: 
% Les élèves galèrent, ça ne les passionne pas, ils ont du mal à copier le CSV en ligne (il vaudrait mieux laisser tomber pandas et leur fournir le python complèt à télécharger).
% Il n’y a rien à « faire » dans le TP, juste des copier-coller sans intérêt et de la réflexion. Ça doit être rageant de bloquer sur des copier-coller
% UPDATE :


% ---
\section{Préparation}
Faire chaque activité dans un nouveau dossier est une bonne pratique dans toutes les matières et en dehors du lycée.
Prenez l’habitude de bien organiser vos dossiers pour retrouver vos documents plus tard.
\begin{exercice}
    Créez un dossier nomé « tp-csv » dans votre zone personnelle.
    \\
    Téléchargez-y le fichier à l’adresse : \url{https://git.jean-cloud.net/adrian/cours-snt/raw/branch/master/donnees_structurees/tp_decouverte_csv/programme.py}.
    \\
    Ouvrez ce programme avec pyzo ou edupython.
\end{exercice}

%\begin{exercice}
%    Dans ce dossier, téléchargez le fichier « noms.csv » disponible à cette adresse :
%    \url{https://git.jean-cloud.net/adrian/cours-snt/raw/branch/master/donnees_structurees/tp_decouverte_csv/noms.csv}
%\end{exercice}


% ---
%\section{Découverte du format CSV}
%Un fichier CSV contient des données structurées.
%\begin{exercice}
%    Ouvrez le fichier « noms.csv » avec un éditeur de texte (notepad++ ou bloc-note) puis ouvrez le avec le tableur libreoffice calc.\\
%    Comparez le rendu dans les deux logiciels.
%    Comment est structurée l’information ?
%\end{exercice}


% ---
%\section{Avec Python}
%Il est également possible d’écrire un programme Python qui lit un fichier CSV.
%\begin{exercice}
%    Ouvrez l’éditeur de python à l’adresse \url{https://www.online-python.com}.
%    Créez un nouveau fichier « noms.csv » grâce au bouton « + » :
%    \includegraphics[width=\textwidth]{screen_ide.png}
%    Dans ce fichier CSV, insérez le contenu du fichier CSV précédent.
%\end{exercice}
%
%\begin{exercice}
%    Sur votre IDE, dans le fichier python, supprimer le code et remplacez-le par le suivant :
%    \begin{minted}{Python}
%import pandas
%noms=pandas.read_csv("noms.csv")
%print(noms)
%    \end{minted}
%    Vous éxécuterez ensuite votre programme à l’aide du bouton « run ».
%    Vous devriez avoir un affichage similaire à celui-ci :\\
%    \includegraphics[]{affichage_noms.png}
%\end{exercice}
%
%\begin{exercice}
%    Ajoutez à votre programme la ligne suivante :
%    \begin{minted}{Python}
%print(noms.loc[1,'prenom'])
%    \end{minted}
%    Que fait cette instruction ?
%\end{exercice}
%
%\begin{exercice}
%    Modifiez votre programme pour qu’il affiche la date de naissance de Janelle Monáe du fichier « noms.csv ».
%\end{exercice}


% ---
Depuis quelques années, l’état et les collectivités locales sont tenues de mettre des données relatives à leurs activités en libre accès.
Cette données sont dites « ouvertes » car libre d’accès pour tous et toutes.
%\begin{exercice}
%    Allez à l’adresse suivante pour ouvrir un environnement python :\\\url{https://www.online-python.com}.
%    \\Créez un nouveau fichier nommé exactement « centres-vaccination.csv » grâce au bouton « + » :
%    \includegraphics[width=\textwidth]{screen_ide.png}
%\end{exercice}

\begin{exercice}
    Rendez-vous à cette adresse :
    \url{https://www.data.gouv.fr/fr/datasets/lieux-de-vaccination-contre-la-covid-19/}
    \\Téléchargez le fichier CSV « centres-vaccination.csv » et copiez son contenu dans le fichier CSV « centres-vaccination.csv ».
    \\Téléchargez la documentation de ce fichier, disponible sur la même page web, et essayez de comprendre la signification des trois premiers descripteurs.
\end{exercice}

Ce fichier CSV n’utilise pas la virgule comme séparateur, car c’est un caractère trop commun en français, il utilise le point virgule.
Avoir un séparateur dans un champs empêcherait un programme de le lire correctement, il aurait l’impression qu’il y a plus de valeurs que prévu.
\begin{exercice}
    En bas du fichier python que vous avez téléchargé, appellez la fonction « afficher\_descripteurs » comme suit :
    \begin{minted}{python}
afficher_descripteurs()
    \end{minted}
    Vérifiez que vous avez bien une liste de champs qui s’affiche comme sur l’exemple suivant :
    \includegraphics{liste_descripteurs.png}
\end{exercice}

%\begin{exercice}
%    Pour lire ce nouveau fichier, copiez ces lignes de Python dans le fichier « main.py » de l’environnement, en ayant supprimé son contenu avant.
%    Puis exécutez le en cliquant sur « Run ».
%    \begin{minted}{Python}
%import pandas
%centres=pandas.read_csv("centres-vaccination.csv", sep=";")
%print(centres)
%    \end{minted}
%\end{exercice}
%Vous pouvez constater que l’affichage est tronqué pour éviter d’envahir l’écran.

% ---
\section{Identifier un problème social}

\begin{exercice}
    La ligne suivante permet de compter le nombre de valeurs renseignées pour chaque champs :
    \begin{minted}{Python}
afficher_compte_colonnes()
    \end{minted}
    Quels sont les trois champs les moins renseignés ? Cela vous semble t’il normal ?
\end{exercice}


% ---
\section{Identifier les incohérences techniques}

% ---
\begin{exercice}
    Remplacez votre affichage par le code suivant :
    \begin{minted}{Python}
afficher_contenu_colonne('lieu_accessibilite')
    \end{minted}
    Il permet d’afficher les différentes valeurs reseignées dans le champs « lieu\_accessibilite » et le nombre de fois qu’elles apparaissent dans le fichier CSV.
    \\Selon vous, pourquoi les valeurs sont aussi hétérogènes ? Quelles valeurs devrait-on pouvoir trouver dans ce champs selon la documentation disponible avec le fichier CSV ?
\end{exercice}

\begin{exercice}
    L’URL suivante est extraite du fichier CSV et permet de réserver dans un centre de vaccination :
    \\\url{https://partners.doctolib.fr/centre-depistage-covid/chateauroux/centre-de-vaccination-covid-ssr-chateauroux-36?speciality_id=5494&enable_cookies_consent=1}
    \\Les paramètres qui sont passés à la page via cette url sont les suivants :
    \\speciality\_id=5494
    \\enable\_cookies\_consent=1
    \\Que peut signifier le dernier paramètre ? Quelles implications peut-il avoir ?
\end{exercice}


\end{document}
