mis à jour
This commit is contained in:
parent
376f4a2966
commit
3ab5f6612a
BIN
donnees_structurees/tp_decouverte_csv/liste_descripteurs.png
Normal file
BIN
donnees_structurees/tp_decouverte_csv/liste_descripteurs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
@ -3,7 +3,8 @@ import csv
|
||||
def afficher_descripteurs ():
|
||||
""" Cette fonction affiche la première ligne du fichier csv """
|
||||
with open('centres-vaccination.csv', 'r', encoding='utf8') as f:
|
||||
print(f.readline())
|
||||
for champs in f.readline().strip().split(';'):
|
||||
print(champs)
|
||||
|
||||
def compter_les_colonnes ():
|
||||
""" Cette fonction compte le nombre d’entrées renseignées pour chaque colonne """
|
||||
@ -13,15 +14,31 @@ def compter_les_colonnes ():
|
||||
for ligne in f.readlines():
|
||||
for (index, element) in zip(title,ligne.strip().split(';')):
|
||||
if index not in compte:
|
||||
compte[index] = 0
|
||||
compte[index] = []
|
||||
if element.strip() != '':
|
||||
compte[index] += 1
|
||||
compte[index].append(element)
|
||||
return compte
|
||||
|
||||
def afficher_compte_colonnes ():
|
||||
""" Cette fonction affiche le nombre d’élément d’une colonne """
|
||||
colonnes = compter_les_colonnes()
|
||||
for index in colonnes:
|
||||
print(index, ' : ', colonnes[index])
|
||||
print(index, ' : ', len(colonnes[index]))
|
||||
|
||||
def afficher_contenu_colonne (colonne):
|
||||
""" Cette fonction affiche les différentes valeurs d’une colonne """
|
||||
colonnes = compter_les_colonnes()
|
||||
resultat = {}
|
||||
for element in colonnes[colonne]:
|
||||
if element not in resultat:
|
||||
resultat[element] = 0
|
||||
resultat[element] += 1
|
||||
for element in resultat:
|
||||
print(element, ' : ', resultat[element])
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------------------------------
|
||||
# Écrivez votre code en dessous de cette ligne
|
||||
# ------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
afficher_compte_colonnes()
|
||||
|
BIN
donnees_structurees/tp_decouverte_csv/sujet.pdf
Normal file
BIN
donnees_structurees/tp_decouverte_csv/sujet.pdf
Normal file
Binary file not shown.
155
donnees_structurees/tp_decouverte_csv/sujet.tex
Normal file
155
donnees_structurees/tp_decouverte_csv/sujet.tex
Normal file
@ -0,0 +1,155 @@
|
||||
\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}
|
Loading…
Reference in New Issue
Block a user