DONNÉES STRUCTURÉES ET LEUR TRAITEMENT

SNT

ÉTUDE D'UN FICHIER AU FORMAT CSV


Écrire votre nom ici

Nom :


QU'EST-CE QUE LE FORMAT CSV ?

  • Les données doivent être structurées, c'est-à-dire organisées, pour permettre leur tri, leur exploitation, leur échange, leur stockage.

    Le sigle CSV désigne un format libre qui signifie Comma-Separated Values. Il s'agit d'un fichier informatique de données structurées, dont les valeurs sont généralement séparées par des virgules ou des points-virgules (comma signifie virgule en anglais).
  • Les tableurs tels $\texttt{Excel}$ (Microsoft) ou $\texttt{Calc}$ (LibreOffice) sont capables d'importer et exporter des fichiers CSV.

  • Les langages tels que $\texttt{PHP}$ et $\texttt{Python}$ sont capables d'importer et de travailler sur les fichiers CSV.

EXERCICE ET VOCABULAIRE

Le RMS Titanic est un paquebot transatlantique britannique qui a fait naufrage dans l'océan Atlantique Nord en 1912 à la suite d'une collision avec un iceberg, lors de son voyage inaugural de Southampton à New York. Cet événement est l'une des plus grandes catastrophes maritimes survenues en temps de paix.

Le fichier S2-titanic.csv présente des données sur plus de 1300 passagers du Titanic.

À faire :

Ouvrir le fichier S2-titanic.csv avec un éditeur de texte.

La première ligne du fichier correspond aux descripteurs, c'est-à-dire aux titres des colonnes de classement :

— Donner le nombre de descripteurs du fichier

Votre réponse ici

— Citer les descripteurs.

Votre réponse ici

— Quel symbole est le séparateur ?

Votre réponse ici

PARTIE 1 : ÉTUDE DU FICHIER CSV AVEC LIBREOFFICE

À faire :

Ouvrir le fichier S2-titanic.csv avec LibreOffice. À l'ouverture cocher uniquement le bon séparateur.

— Pour le descripteur "sexe", à quoi correspond la valeur 1 ?

Votre réponse ici

— Sachant que Andrews, Mr. Thomas Jr n'a pas survécu au naufrage, pour le descripteur "survie", à quoi correspond la valeur 1 ?

Votre réponse ici

— Choisir le 8ème objet du fichier (c'est-à-dire le 8è passager) et rédiger une phrase le décrivant.

Votre réponse ici

— En insérant une commande de la forme $\texttt{= MOYENNE(...)}$ dans une cellule bien choisie, déterminer le prix moyen d'un billet à bord du Titanic.

Votre réponse ici

Créer un AutoFiltre sur la première ligne puis :

— Déterminer le tarif le plus élevé :

Votre réponse ici

— Déterminer le nombre de femmes présentes à bord :

Votre réponse ici

— Trier les données afin de compléter le tableau suivant :

Tarif (£) [0 ;50[ [50 ;100[ [100 ;150[ [150 ;200[ [200 ;250[ [250 ;300[ [300 ;350[ [350 ;400[ [350 ;400[ [450 ;500[ [500 ;550[
Effectif ... 161 33 13 21 ... 0 0 0 0 ...

PARTIE 2 : ÉTUDE DU FICHIER CSV AVEC PYTHON

À faire :

Enregistrer le fichier S2-titanic.csv dans le même répertoire que ce notebook puis exécuter le programme suivant :

In [ ]:
import csv                                               #on importe la bibliothèque (ou module) csv

fichier_csv = open("S2-titanic.csv", "r")                #on ouvre le fichier S2-titanic.csv
csv_passagers= csv.reader(fichier_csv, delimiter=";")    #le délimiteur est le ";"
numero = 0
for ligne in csv_passagers:                              #on parcourt toutes les lignes du fichier
    if numero == 0:                                      #la ligne numéro 0 :
        print("Descripteurs :")                          #les decripteurs
        print(ligne)
    else:                                                #les autres lignes :
        print("Données :")                               #des données
        print(ligne)
    numero = numero+1
    
print("total :",numero, "passagers")                     #on a compté tous les passagers
fichier_csv.close()                                      #on ferme le fichier S2-titanic.csv
Il peut-être intéressant d'avoir des informations sur un seul passager.

— Éxécuter le programme modifier ci-dessous :

In [ ]:
import csv
fichier_csv = open("S2-titanic.csv", "r")
csv_passagers= csv.reader(fichier_csv, delimiter=";")
numero = 0
for ligne in csv_passagers:
    if numero == 800:
        print("passager numéro :", numero)
        print(ligne)
        break           #inutile de continuer le for
    numero=numero+1

fichier_csv.close()

— Modifier le programme précédent afin d'obtenir des informations sur le 1197è passager.

In [ ]:
# Votre programme modifié ici
Chaque ligne de données est de la forme : $\texttt{['3', '1', 'Sheerlinck, Mr. Jan Baptist', '1', '29', '10']}$ Cette ligne peut être analysée ainsi : | Rang dans la ligne | 0 | 1 | 2 | 3 | 4 | 5 | |:------------------:|:------:|:------:|:---------------------------:|:----:|:---:|:-----:| | Descripteur | classe | survie | nom | sexe | age | tarif | | Type de variable | int | int | chaîne de caractères | int | int | float | | Valeur | 3 | 1 | Sheerlinck, Mr. Jan Baptist | 1 | 29 | 10 | - Pour obtenir le tarif de cette ligne, il suffit d'écrire $\, \texttt{float(ligne[5])}$ - Pour obtenir le nom de cette ligne, il suffit d'écrire $\, \texttt{ligne[2]}$
Le programme suivant compte nombre de passagers de 3ème classe.
In [ ]:
import csv
fichier_csv = open("S2-titanic.csv", "r")
csv_passagers= csv.reader(fichier_csv, delimiter=";")
numero = 0
compteur = 0
for ligne in csv_passagers:
    if numero >= 1:
        if (int(ligne[0]) == 3) :
            compteur = compteur +1
    numero=numero+1

fichier_csv.close()
print("Nombre de passagers de 3ème classe : ", compteur)

— Modifier le programme afin qu'il compte le nombre de femmes.

In [ ]:
# Votre programme modifié ici

— Modifier à nouveau afin qu'il calcule les ages du plus jeune passager et du plus vieux passager.

In [ ]:
# Votre programme modifié ici

— Modifier à nouveau afin qu'il calcule le tarif moyen d'un billet.

In [ ]:
# Votre programme modifié ici