mis à jour

This commit is contained in:
Adrian Amaglio 2021-02-12 13:35:02 +01:00
parent 376f4a2966
commit 3ab5f6612a
4 changed files with 177 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -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 dentré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 dune 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 dune 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()

Binary file not shown.

View 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 ny 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 lhabitude 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 à ladresse : \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 linformation ?
%\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 à ladresse \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 à laide 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 quil 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 daccès pour tous et toutes.
%\begin{exercice}
% Allez à ladresse 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 nutilise pas la virgule comme séparateur, car cest 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 limpression quil 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 saffiche comme sur lexemple 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 lenvironnement, 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 laffichage est tronqué pour éviter denvahir 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 til 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 dafficher les différentes valeurs reseignées dans le champs « lieu\_accessibilite » et le nombre de fois quelles 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}
LURL 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}