Activité 2d: Représenter les données

Représenter des données

On dispose d’un fichier donnant la répartition en % de la population en France entre 2011 et 2018, par type de téléphone mobile utilisé.
Source : CREDOC, Enquêtes sur les "Conditions de vie et les Aspirations"

  • Nom du fichier : Typemobile.csv
  • Taille : 155 b
Télécharger

Avec Libre Office

Les données ont été stockées dans le fichier typemobile.csv à télécharger ci dessus.

 On souhaite visualiser l’évolution de l’équipement en smarthphone des français. pour cela:

  • Ouvrir ce fichier (en UTF8)
  • Sélectionner les lignes 1 et 2
  • Cliquer sur l’icône diagramme (ou dans le menu Insertion/Diagramme)

Choisir :

  • Type de diagramme : Colonnes
  • Plage de données (à sélectionner si non sélectionnées avant) : choisir Séries de données en lignes et cocher les cases "première ligne comme étiquette" et "première colonne comme étiquette"
  • Cliquer sur Terminer

On obtient :

Evolution telephone mobile

On souhaite visualiser l’évolution de l’équipement en téléphonie mobile

  • Sélectionner les 4 lignes
  • Cliquer sur l’icône (ou dans le menu Insertion/Diagramme)

Choisir :

  • Type de diagramme : ligne puis lignes seules
  • Plage de données (à sélectionner si non sélectionnées avant) : choisir Séries de données en ligneset cocher les cases "première ligne comme étiquette" et "première colonne comme étiquette"
  • Cliquer sur Terminer

On obtient :

Diagramme telephonie

Traitement des données avec Python pour comprendre comment ça marche

Lire un fichier

Télécharger le fichier "baselog.csv" puis le copier dans un dossier "Mon_travail" sur le bureau.

Pour ouvrir un fichier, il faut commencer par créer un objet python f (par exemple) représentant le fichier créé et le mettant en état de lecture avec l’option ’r’ et comme c’est l’option par défaut, il suffit d’écrire : f= open('nomFichier') où 'nomFichier' désigne le nom avec l’extension.
Pour le lire on utilise la méthode read : f.read()
Lancer EduPython puis écrire l’exemple ci-dessous dans un script puis l'enregister sous le nom "base.py" dans le dossier "Mon_travail" puis l’exécuter.

f=open('baselog.csv',encoding='UTF8') 
contenu=f.read()
f.close()

# ou open('baselog.csv', 'r',,encoding='UTF8')

# un fichier ouvert doit être toujours fermé


Dans la Console Python, taper les instructions suivantes :
>>>contenu
>>>type(contenu)
>>>print(contenu)

Observer les résultats obtenus. On a ainsi récupérer le texte sous forme d’une chaîne de caractères, ce qui n’est pas très pratique pour traiter le fichier.

Lire un fichier CSV avec le module csv

Pour traiter des données numériques qui sont enregistrées dans un fichier .csv, il est fortement conseillé d’avoir enregistré le fichier au format csv avec l’encodage UTF-8 et un point pour le séparateur décimal si on souhaite faire des calculs avec les données.
Le module csv est un des modules qui permet de lire un fichier CSV et de le "transformer" en liste que l’on peut ensuite manipuler.
Écrire l’exemple ci-dessous dans un script puis l’exécuter.

import csv
f=open('baselog.csv',encoding='UTF8')
r=csv.reader(f)
Log=list(r)
f.close()
 


Dans la console, taper les instructions suivantes :
>>>print(Log)   
>>>type(Log)
On récupère ainsi une liste de listes : la liste de toutes les lignes de la table, chaque ligne étant une liste et chaque élément de cette dernière est de type chaîne. Plus précisément, un élément de Log obtenu par l’instruction Log[i] (où i est l’indice de l’élément) correspond à une ligne de la table.
L’instruction len(Log) qui renvoie la longueur de la liste Log correspond donc au nombre de lignes de la table.
L’instruction len(Log[0]) qui renvoie la longueur du premier élément de la liste Log, correspond donc au nombre de colonnes de la table. Enfin, une cellule de la table sera accessible par Log[i][j] où i est l’indice de la ligne et j celui de la colonne.

Dans la console, taper les instructions suivantes :
>>>nblignes=len(Log)
>>>nbcolonnes=len(Log[0])
>>>Ligne1=Log[0] ; print(Ligne1)
>>>Ligne3=Log[2] ; print(Ligne3)

Question 13: A quoi correspond les éléments de la liste Ligne1 ?
Pour récupérer, par exemple, la première colonne autrement dit la liste des éléments d’indice 0 de chaque ligne qui dans notre exemple correspond à l’identifiant ’nom’, on peut utiliser la fonction suivante :

def Colonne(L,j):
    C=[]
    nblignes=len(L)
    for i in range(nblignes):
        C.append(L[i][j])
    return(C)
#renvoie la liste des éléments de la colonne d'indice j de la table L




 

Question 14:  Expliquer "en langage naturel" comment opère cette fonction.
L’exécuter et dans la console taper l’instruction qui permet d’obtenir la liste des éléments de la première colonne de la table (Log).

Croisement des données

A partir du fichier ’basemail.csv’, obtenir la liste Mail correspondant à cette table.
Vérifier que ces deux tables Log et Mail ont un descripteur en commun en affichant dans la console les deux listes contenant les descripteurs de celles-ci.
On souhaite écrire une fonction loginPass(adressemail) qui prend en paramètre la chaine adressemail et renvoie le login et le mot de passe correspondant. Compléter :
Rappel: On rappelle que la méthode index pour les listes permet d’obtenir l’indice d’un élément d’une liste.

def loginPass(adressemail):
    CmailMail= Colonne(mail,0)
    CnomMail= .................................................
    indiceLmail=CmailMail.index(adressemail)
    lenom=CnomMail[indiceLmail]
    lemotdepasse=Mail[indiceLmail][2]
    CnomLog=.....................................................
    indiceLlog=.....................................................
    lelogin=..........................................................
    return(lelogin,lemotdepasse)


#on récupère la liste des éléments de la colonne qui contient les mails dans la liste Mail
#on récupère la liste des éléments de la colonne qui contient les noms dans la liste Mail
#on obtient l'indice de la ligne où se trouve adressemail dans CmailMail
#on obtient le nom correspondant à adressemail
#on obtient .......................................................................................................................
#on récupère la liste des éléments de la colonne qui contient les noms dans la liste Log
#on obtient l'indice de la ligne où se trouve lenom dans CnomLog
#on obtient le mot de passe correspondant à lenom

Question 15: Quel est le login et le mot de passe du détenteur de l’adresse ’mp@chez.moi’ ?

×