449 lines
14 KiB
Markdown
449 lines
14 KiB
Markdown
|
|
# Données structurées et leur traitement
|
||
|
|
|
||
|
|
> Chaque jour, nous produisons et consommons des quantités gigantesques de données : messages, photos, achats, positions GPS, statistiques sportives...
|
||
|
|
>
|
||
|
|
> Mais comment ces données sont-elles organisées ? Comment peut-on les exploiter pour en tirer des informations utiles ?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Le Programme
|
||
|
|
|
||
|
|
| Contenus | Capacités attendues |
|
||
|
|
|----------|---------------------|
|
||
|
|
| Données, descripteurs, valeurs, types | Identifier les descripteurs et les valeurs d'une collection de données |
|
||
|
|
| Formats de fichiers (CSV, JSON) | Ouvrir et manipuler des fichiers de données structurées |
|
||
|
|
| Traitement de données | Trier, filtrer et effectuer des calculs sur des données |
|
||
|
|
| Open data | Trouver et exploiter des données ouvertes |
|
||
|
|
| Cloud et données personnelles | Comprendre les enjeux du stockage des données |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Qu'est-ce qu'une donnée ?
|
||
|
|
|
||
|
|
### Définition
|
||
|
|
|
||
|
|
Une **donnée** est une information représentée sous une forme conventionnelle, permettant son traitement par un ordinateur.
|
||
|
|
|
||
|
|
**Exemples de données** :
|
||
|
|
- Votre nom, prénom, date de naissance
|
||
|
|
- Le prix d'un article
|
||
|
|
- La température relevée par un capteur
|
||
|
|
- Le nombre de likes sur une publication
|
||
|
|
|
||
|
|
### Données brutes vs informations
|
||
|
|
|
||
|
|
| Concept | Description | Exemple |
|
||
|
|
|---------|-------------|---------|
|
||
|
|
| **Donnée brute** | Valeur sans contexte | `37.5` |
|
||
|
|
| **Information** | Donnée avec du sens | `Température corporelle : 37.5°C` |
|
||
|
|
|
||
|
|
> Une donnée devient une **information** quand on lui donne un contexte et une signification.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Les données structurées
|
||
|
|
|
||
|
|
### Organisation en tableau
|
||
|
|
|
||
|
|
Les données structurées sont organisées de manière régulière, généralement sous forme de **tableau** :
|
||
|
|
|
||
|
|
| Prénom | Âge | Ville | Sport préféré |
|
||
|
|
|--------|-----|-------|---------------|
|
||
|
|
| Emma | 15 | Genech | Handball |
|
||
|
|
| Lucas | 16 | Orchies | Football |
|
||
|
|
| Léa | 15 | Templeuve | Danse |
|
||
|
|
| Noah | 16 | Genech | Basketball |
|
||
|
|
|
||
|
|
### Vocabulaire essentiel
|
||
|
|
|
||
|
|
| Terme | Définition | Exemple |
|
||
|
|
|-------|------------|---------|
|
||
|
|
| **Collection** | Ensemble de données du même type | Le tableau des élèves |
|
||
|
|
| **Objet** | Un élément de la collection | Une ligne du tableau (un élève) |
|
||
|
|
| **Descripteur** | Caractéristique décrite (colonne) | Prénom, Âge, Ville, Sport préféré |
|
||
|
|
| **Valeur** | Contenu d'une case | "Emma", 15, "Genech" |
|
||
|
|
|
||
|
|
### Types de données
|
||
|
|
|
||
|
|
Chaque valeur a un **type** qui détermine comment elle est traitée :
|
||
|
|
|
||
|
|
| Type | Description | Exemples |
|
||
|
|
|------|-------------|----------|
|
||
|
|
| **Texte** (chaîne de caractères) | Suite de caractères | "Emma", "Genech", "Handball" |
|
||
|
|
| **Nombre entier** | Nombre sans décimales | 15, 16, 2024 |
|
||
|
|
| **Nombre décimal** | Nombre avec décimales | 1.75, 37.5, 9.99 |
|
||
|
|
| **Booléen** | Vrai ou faux | Vrai, Faux |
|
||
|
|
| **Date** | Date et/ou heure | 15/01/2024, 14:30:00 |
|
||
|
|
|
||
|
|
### Activité : Identifier les descripteurs
|
||
|
|
|
||
|
|
✏️ **À faire** : Observez ce tableau de jeux vidéo et identifiez :
|
||
|
|
|
||
|
|
| Titre | Studio | Année | Note | Multijoueur |
|
||
|
|
|-------|--------|-------|------|-------------|
|
||
|
|
| Minecraft | Mojang | 2011 | 9.2 | Vrai |
|
||
|
|
| Fortnite | Epic Games | 2017 | 8.5 | Vrai |
|
||
|
|
| Zelda TOTK | Nintendo | 2023 | 9.8 | Faux |
|
||
|
|
| FIFA 24 | EA Sports | 2023 | 7.5 | Vrai |
|
||
|
|
|
||
|
|
1. Combien d'objets contient cette collection ?
|
||
|
|
2. Quels sont les descripteurs ?
|
||
|
|
3. Quel est le type de chaque descripteur ?
|
||
|
|
4. Quelle est la valeur du descripteur "Studio" pour "Fortnite" ?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Les formats de fichiers
|
||
|
|
|
||
|
|
### Le format CSV
|
||
|
|
|
||
|
|
**CSV** signifie *Comma-Separated Values* (valeurs séparées par des virgules). C'est un format texte simple pour stocker des données en tableau.
|
||
|
|
|
||
|
|
**Exemple de fichier `eleves.csv`** :
|
||
|
|
```csv
|
||
|
|
Prénom,Âge,Ville,Sport
|
||
|
|
Emma,15,Genech,Handball
|
||
|
|
Lucas,16,Orchies,Football
|
||
|
|
Léa,15,Templeuve,Danse
|
||
|
|
Noah,16,Genech,Basketball
|
||
|
|
```
|
||
|
|
|
||
|
|
**Caractéristiques** :
|
||
|
|
- Première ligne = noms des descripteurs
|
||
|
|
- Une ligne = un objet
|
||
|
|
- Valeurs séparées par des virgules (ou points-virgules en France)
|
||
|
|
- Fichier lisible avec un simple éditeur de texte
|
||
|
|
|
||
|
|
> **Attention** : En France, on utilise souvent le point-virgule (`;`) comme séparateur car la virgule est utilisée pour les nombres décimaux (3,14 au lieu de 3.14).
|
||
|
|
|
||
|
|
### Le format JSON
|
||
|
|
|
||
|
|
**JSON** signifie *JavaScript Object Notation*. C'est un format plus structuré, très utilisé sur le web.
|
||
|
|
|
||
|
|
**Exemple de fichier `eleves.json`** :
|
||
|
|
```json
|
||
|
|
[
|
||
|
|
{
|
||
|
|
"prenom": "Emma",
|
||
|
|
"age": 15,
|
||
|
|
"ville": "Genech",
|
||
|
|
"sport": "Handball"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"prenom": "Lucas",
|
||
|
|
"age": 16,
|
||
|
|
"ville": "Orchies",
|
||
|
|
"sport": "Football"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
**Caractéristiques** :
|
||
|
|
- Utilise des accolades `{}` pour les objets
|
||
|
|
- Utilise des crochets `[]` pour les listes
|
||
|
|
- Descripteurs entre guillemets
|
||
|
|
- Plus lisible mais plus volumineux que CSV
|
||
|
|
|
||
|
|
### Comparaison des formats
|
||
|
|
|
||
|
|
| Critère | CSV | JSON |
|
||
|
|
|---------|-----|------|
|
||
|
|
| **Lisibilité** | Simple | Structuré |
|
||
|
|
| **Taille** | Compact | Plus volumineux |
|
||
|
|
| **Hiérarchie** | Non (tableau plat) | Oui (données imbriquées) |
|
||
|
|
| **Usage** | Tableurs, exports | Web, APIs |
|
||
|
|
| **Ouverture** | Excel, LibreOffice | Navigateurs, éditeurs de code |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Traitement des données
|
||
|
|
|
||
|
|
### Les opérations de base
|
||
|
|
|
||
|
|
| Opération | Description | Exemple |
|
||
|
|
|-----------|-------------|---------|
|
||
|
|
| **Trier** | Ordonner selon un critère | Trier par âge croissant |
|
||
|
|
| **Filtrer** | Garder certaines lignes | Garder seulement les élèves de Genech |
|
||
|
|
| **Rechercher** | Trouver une valeur | Trouver l'élève "Emma" |
|
||
|
|
| **Calculer** | Effectuer des opérations | Calculer l'âge moyen |
|
||
|
|
| **Croiser** | Combiner des données | Ajouter les notes à partir d'un autre fichier |
|
||
|
|
|
||
|
|
### Exemple avec un tableur
|
||
|
|
|
||
|
|
Dans LibreOffice Calc ou Excel :
|
||
|
|
|
||
|
|
**Trier** :
|
||
|
|
1. Sélectionner le tableau
|
||
|
|
2. Menu Données → Trier
|
||
|
|
3. Choisir le critère de tri
|
||
|
|
|
||
|
|
**Filtrer** :
|
||
|
|
1. Sélectionner le tableau
|
||
|
|
2. Menu Données → Filtre automatique
|
||
|
|
3. Cliquer sur la flèche d'un descripteur pour filtrer
|
||
|
|
|
||
|
|
**Calculer** :
|
||
|
|
- `=MOYENNE(B2:B5)` → calcule la moyenne des âges
|
||
|
|
- `=NB.SI(C2:C5;"Genech")` → compte les élèves de Genech
|
||
|
|
- `=MAX(B2:B5)` → trouve l'âge maximum
|
||
|
|
|
||
|
|
### Activité : Manipuler des données
|
||
|
|
|
||
|
|
✏️ **À faire** avec LibreOffice Calc :
|
||
|
|
|
||
|
|
1. Téléchargez un fichier CSV (ou créez-en un)
|
||
|
|
2. Ouvrez-le dans LibreOffice Calc
|
||
|
|
3. Triez les données par ordre alphabétique
|
||
|
|
4. Filtrez pour n'afficher que certaines lignes
|
||
|
|
5. Calculez une moyenne, un maximum, un minimum
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Les données ouvertes (Open Data)
|
||
|
|
|
||
|
|
### Qu'est-ce que l'Open Data ?
|
||
|
|
|
||
|
|
L'**Open Data** désigne des données accessibles librement et gratuitement, que chacun peut utiliser, modifier et partager.
|
||
|
|
|
||
|
|
**Principes** :
|
||
|
|
- Accès libre et gratuit
|
||
|
|
- Format ouvert et exploitable
|
||
|
|
- Licence permettant la réutilisation
|
||
|
|
|
||
|
|
### Exemples de données ouvertes
|
||
|
|
|
||
|
|
| Source | Données disponibles |
|
||
|
|
|--------|---------------------|
|
||
|
|
| [data.gouv.fr](https://www.data.gouv.fr) | Données publiques françaises |
|
||
|
|
| [INSEE](https://www.insee.fr) | Statistiques démographiques et économiques |
|
||
|
|
| [OpenStreetMap](https://www.openstreetmap.org) | Données cartographiques |
|
||
|
|
| [Météo France](https://donneespubliques.meteofrance.fr) | Données météorologiques |
|
||
|
|
| [SNCF Open Data](https://data.sncf.com) | Horaires, gares, trafic |
|
||
|
|
|
||
|
|
### Exemples d'utilisation
|
||
|
|
|
||
|
|
- **Applications de transport** : utilisent les données SNCF/RATP
|
||
|
|
- **Sites météo** : utilisent les données Météo France
|
||
|
|
- **Cartes** : utilisent OpenStreetMap
|
||
|
|
- **Journalisme de données** : analyse des données publiques
|
||
|
|
|
||
|
|
### Activité : Explorer l'Open Data
|
||
|
|
|
||
|
|
✏️ **À faire** :
|
||
|
|
|
||
|
|
1. Rendez-vous sur [data.gouv.fr](https://www.data.gouv.fr)
|
||
|
|
2. Recherchez un jeu de données qui vous intéresse (sport, culture, environnement...)
|
||
|
|
3. Téléchargez-le au format CSV
|
||
|
|
4. Ouvrez-le dans un tableur
|
||
|
|
5. Posez-vous des questions et essayez d'y répondre avec les données
|
||
|
|
|
||
|
|
**Exemples de questions** :
|
||
|
|
- Quelle commune a le plus de... ?
|
||
|
|
- Quelle est l'évolution de... au fil des années ?
|
||
|
|
- Y a-t-il une corrélation entre... et... ?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Le Cloud et le stockage des données
|
||
|
|
|
||
|
|
### Qu'est-ce que le Cloud ?
|
||
|
|
|
||
|
|
Le **Cloud** (nuage) désigne le stockage et le traitement de données sur des serveurs distants, accessibles via Internet.
|
||
|
|
|
||
|
|
**Exemples de services Cloud** :
|
||
|
|
- Stockage : Google Drive, iCloud, OneDrive, Dropbox
|
||
|
|
- Photos : Google Photos, iCloud Photos
|
||
|
|
- Musique : Spotify, Deezer, Apple Music
|
||
|
|
- Documents : Google Docs, Office 365
|
||
|
|
|
||
|
|
### Avantages et inconvénients
|
||
|
|
|
||
|
|
| Avantages | Inconvénients |
|
||
|
|
|-----------|---------------|
|
||
|
|
| Accès depuis n'importe où | Dépendance à Internet |
|
||
|
|
| Synchronisation automatique | Vie privée (données sur serveurs tiers) |
|
||
|
|
| Partage facile | Coût des abonnements |
|
||
|
|
| Sauvegarde automatique | Risque de piratage |
|
||
|
|
| Pas besoin d'espace local | Consommation énergétique des datacenters |
|
||
|
|
|
||
|
|
### Où sont stockées vos données ?
|
||
|
|
|
||
|
|
Quand vous utilisez un service Cloud, vos données sont physiquement stockées dans des **datacenters** (centres de données), souvent situés à l'étranger.
|
||
|
|
|
||
|
|
> **Question** : Savez-vous dans quel pays sont stockées vos photos Instagram ? Vos messages Snapchat ?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Protection des données personnelles
|
||
|
|
|
||
|
|
### Le RGPD
|
||
|
|
|
||
|
|
Le **RGPD** (Règlement Général sur la Protection des Données) est une loi européenne entrée en vigueur en 2018.
|
||
|
|
|
||
|
|
**Vos droits** :
|
||
|
|
- **Droit d'accès** : savoir quelles données sont collectées sur vous
|
||
|
|
- **Droit de rectification** : corriger des données inexactes
|
||
|
|
- **Droit à l'effacement** : demander la suppression de vos données
|
||
|
|
- **Droit à la portabilité** : récupérer vos données dans un format exploitable
|
||
|
|
- **Droit d'opposition** : refuser certains traitements
|
||
|
|
|
||
|
|
### La CNIL
|
||
|
|
|
||
|
|
La **CNIL** (Commission Nationale de l'Informatique et des Libertés) est l'autorité française qui veille au respect de la vie privée numérique.
|
||
|
|
|
||
|
|
**Ses missions** :
|
||
|
|
- Informer et protéger les citoyens
|
||
|
|
- Contrôler les entreprises
|
||
|
|
- Sanctionner les abus
|
||
|
|
- Conseiller les pouvoirs publics
|
||
|
|
|
||
|
|
### Activité : Exercer ses droits
|
||
|
|
|
||
|
|
✏️ **À faire** :
|
||
|
|
|
||
|
|
1. Choisissez un réseau social que vous utilisez
|
||
|
|
2. Trouvez comment accéder à vos données personnelles
|
||
|
|
3. Téléchargez une copie de vos données (si possible)
|
||
|
|
4. Analysez ce qui a été collecté sur vous
|
||
|
|
|
||
|
|
**Exemples** :
|
||
|
|
- Instagram : Paramètres → Votre activité → Télécharger vos informations
|
||
|
|
- Google : [takeout.google.com](https://takeout.google.com)
|
||
|
|
- Facebook : Paramètres → Vos informations Facebook → Télécharger vos informations
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Traitement des données en Python
|
||
|
|
|
||
|
|
### Lire un fichier CSV
|
||
|
|
|
||
|
|
```python
|
||
|
|
import csv
|
||
|
|
|
||
|
|
# Ouvrir et lire un fichier CSV
|
||
|
|
with open('eleves.csv', 'r') as fichier:
|
||
|
|
lecteur = csv.DictReader(fichier, delimiter=';')
|
||
|
|
for ligne in lecteur:
|
||
|
|
print(ligne['Prénom'], ligne['Âge'])
|
||
|
|
```
|
||
|
|
|
||
|
|
### Filtrer des données
|
||
|
|
|
||
|
|
```python
|
||
|
|
# Filtrer les élèves de plus de 15 ans
|
||
|
|
eleves_16_ans = []
|
||
|
|
for ligne in lecteur:
|
||
|
|
if int(ligne['Âge']) >= 16:
|
||
|
|
eleves_16_ans.append(ligne)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Calculer une moyenne
|
||
|
|
|
||
|
|
```python
|
||
|
|
# Calculer l'âge moyen
|
||
|
|
total = 0
|
||
|
|
nombre = 0
|
||
|
|
for ligne in lecteur:
|
||
|
|
total += int(ligne['Âge'])
|
||
|
|
nombre += 1
|
||
|
|
|
||
|
|
moyenne = total / nombre
|
||
|
|
print(f"Âge moyen : {moyenne}")
|
||
|
|
```
|
||
|
|
|
||
|
|
### Activité : Traiter des données en Python
|
||
|
|
|
||
|
|
✏️ **À faire** sur [Notebook](https://notebook.florianmathieu.prof) :
|
||
|
|
|
||
|
|
1. Créez un fichier CSV avec des données de votre choix
|
||
|
|
2. Écrivez un programme Python pour :
|
||
|
|
- Lire le fichier
|
||
|
|
- Afficher toutes les données
|
||
|
|
- Filtrer selon un critère
|
||
|
|
- Calculer une statistique (moyenne, maximum, etc.)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Métadonnées
|
||
|
|
|
||
|
|
### Qu'est-ce qu'une métadonnée ?
|
||
|
|
|
||
|
|
Une **métadonnée** est une donnée qui décrit une autre donnée. C'est une "donnée sur la donnée".
|
||
|
|
|
||
|
|
**Exemples** :
|
||
|
|
- Pour une photo : date de prise de vue, appareil utilisé, coordonnées GPS
|
||
|
|
- Pour un fichier : nom, taille, date de création, auteur
|
||
|
|
- Pour une chanson : artiste, album, durée, genre
|
||
|
|
|
||
|
|
### Métadonnées et vie privée
|
||
|
|
|
||
|
|
Les métadonnées peuvent révéler beaucoup d'informations :
|
||
|
|
|
||
|
|
| Type de fichier | Métadonnées sensibles |
|
||
|
|
|-----------------|----------------------|
|
||
|
|
| **Photo** | Position GPS, date, appareil |
|
||
|
|
| **Document** | Auteur, historique des modifications |
|
||
|
|
| **Email** | Expéditeur, destinataires, date, serveurs traversés |
|
||
|
|
| **Musique** | Historique d'écoute, préférences |
|
||
|
|
|
||
|
|
> **Rappel** : Les métadonnées EXIF des photos ont été étudiées dans le chapitre sur la photographie numérique.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Big Data
|
||
|
|
|
||
|
|
### Définition
|
||
|
|
|
||
|
|
Le **Big Data** désigne des ensembles de données tellement volumineux qu'ils ne peuvent pas être traités par des outils classiques.
|
||
|
|
|
||
|
|
### Les 3V du Big Data
|
||
|
|
|
||
|
|
| V | Signification | Exemple |
|
||
|
|
|---|---------------|---------|
|
||
|
|
| **Volume** | Quantité massive de données | Facebook : 4 pétaoctets/jour |
|
||
|
|
| **Vélocité** | Vitesse de génération | Twitter : 500 millions de tweets/jour |
|
||
|
|
| **Variété** | Diversité des formats | Texte, images, vidéos, capteurs... |
|
||
|
|
|
||
|
|
### Qui utilise le Big Data ?
|
||
|
|
|
||
|
|
- **Réseaux sociaux** : personnalisation du fil d'actualité
|
||
|
|
- **E-commerce** : recommandations de produits
|
||
|
|
- **Streaming** : suggestions de films/musiques
|
||
|
|
- **Santé** : analyse de données médicales
|
||
|
|
- **Transports** : optimisation du trafic
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Pour aller plus loin
|
||
|
|
|
||
|
|
- 📖 [CNIL - Comprendre mes traces](https://www.cnil.fr/fr/comprendre-mes-traces)
|
||
|
|
- 📖 [Data.gouv.fr](https://www.data.gouv.fr) - Plateforme Open Data française
|
||
|
|
- 🎥 [Do Not Track](https://donottrack-doc.com/fr/) - Webdocumentaire sur le tracking
|
||
|
|
- 📖 [Mes datas et moi](https://www.yourdigitallife.fr/) - MAIF
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Synthèse
|
||
|
|
|
||
|
|
Complétez le texte suivant :
|
||
|
|
|
||
|
|
Les données structurées sont organisées sous forme de _____________ avec des lignes (objets) et des colonnes (_____________).
|
||
|
|
|
||
|
|
Chaque valeur a un _____________ : texte, nombre entier, nombre décimal, booléen ou date.
|
||
|
|
|
||
|
|
Le format _____________ stocke les données avec des valeurs séparées par des virgules, tandis que le format _____________ utilise des accolades et des crochets.
|
||
|
|
|
||
|
|
Les opérations de base sur les données sont : _____________, filtrer, rechercher et _____________.
|
||
|
|
|
||
|
|
L'_____________ Data désigne des données librement accessibles et réutilisables.
|
||
|
|
|
||
|
|
Le _____________ protège nos données personnelles en Europe et la _____________ veille à son application en France.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
Auteur : Florian Mathieu
|
||
|
|
|
||
|
|
Licence CC BY NC
|
||
|
|
|
||
|
|
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.
|