Compare commits
No commits in common. "7a4add686eb12363dd6e8313e6f795fa365f2707" and "376f4a2966d5e2de03506286e789e21f0ebd1787" have entirely different histories.
7a4add686e
...
376f4a2966
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 6.0 KiB |
@ -3,8 +3,7 @@ import csv
|
|||||||
def afficher_descripteurs ():
|
def afficher_descripteurs ():
|
||||||
""" Cette fonction affiche la première ligne du fichier csv """
|
""" Cette fonction affiche la première ligne du fichier csv """
|
||||||
with open('centres-vaccination.csv', 'r', encoding='utf8') as f:
|
with open('centres-vaccination.csv', 'r', encoding='utf8') as f:
|
||||||
for champs in f.readline().strip().split(';'):
|
print(f.readline())
|
||||||
print(champs)
|
|
||||||
|
|
||||||
def compter_les_colonnes ():
|
def compter_les_colonnes ():
|
||||||
""" Cette fonction compte le nombre d’entrées renseignées pour chaque colonne """
|
""" Cette fonction compte le nombre d’entrées renseignées pour chaque colonne """
|
||||||
@ -14,31 +13,15 @@ def compter_les_colonnes ():
|
|||||||
for ligne in f.readlines():
|
for ligne in f.readlines():
|
||||||
for (index, element) in zip(title,ligne.strip().split(';')):
|
for (index, element) in zip(title,ligne.strip().split(';')):
|
||||||
if index not in compte:
|
if index not in compte:
|
||||||
compte[index] = []
|
compte[index] = 0
|
||||||
if element.strip() != '':
|
if element.strip() != '':
|
||||||
compte[index].append(element)
|
compte[index] += 1
|
||||||
return compte
|
return compte
|
||||||
|
|
||||||
def afficher_compte_colonnes ():
|
def afficher_compte_colonnes ():
|
||||||
""" Cette fonction affiche le nombre d’élément d’une colonne """
|
|
||||||
colonnes = compter_les_colonnes()
|
colonnes = compter_les_colonnes()
|
||||||
for index in colonnes:
|
for index in colonnes:
|
||||||
print(index, ' : ', len(colonnes[index]))
|
print(index, ' : ', 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()
|
||||||
|
|||||||
Binary file not shown.
@ -1,155 +0,0 @@
|
|||||||
\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