Quand YouTube te propose pile la vidéo que tu avais envie de regarder, quand Roblox met en avant sur ta page d'accueil des expériences qui ressemblent à celles où tu joues déjà, ou quand Discord bloque automatiquement un message suspect avant qu'il n'arrive dans ton serveur, il y a des données derrière. Chaque vidéo regardée (et le moment où tu l'as quittée), chaque partie lancée, chaque message signalé devient une information que des programmes analysent pour améliorer ces services.

Et derrière ces programmes, il y a des personnes dont c'est le métier de faire parler les données : les data analysts, les data scientists et toute une famille de métiers qui recrutent énormément.

🎬 Le savais-tu ? Les créateurs aussi analysent leurs données Les youtubeurs passent beaucoup de temps dans YouTube Studio, l'espace où ils voient les statistiques de leurs vidéos. L'une des plus regardées est la courbe de rétention : elle montre à quelle seconde les spectateurs décrochent. Si beaucoup partent au bout de 30 secondes, le créateur sait que son introduction est trop longue ! De la même façon, les créateurs d'expériences Roblox disposent de tableaux de bord pour savoir combien de joueurs reviennent le lendemain, ou à quel niveau ils abandonnent. Sans le savoir, ces créateurs font déjà le travail d'un data analyst.

Cette page est la suite du Guide d'initiation à Python. Tu y découvriras en quoi consistent ces métiers, ce qu'il faut étudier pour y arriver, les outils utilisés par les pros, et tu feras toi-même tes premières analyses de données avec Python.

💡 Comment lire ce guide ? Les parties 1 à 6 parlent du métier et de l'orientation : elles se lisent comme un article. Les parties 7 à 11 sont plus techniques : installe-toi devant ton ordinateur, avec VS Code ouvert, et teste les exemples au fur et à mesure.

Au programme :

  1. C'est quoi, l'analyse de données ?
  2. Les métiers de la data
  3. À quoi ça sert, concrètement ?
  4. L'IA bouleverse le métier
  5. Les compétences à développer
  6. Quel bac et quelles études ?
  7. Les outils des pros
  8. Comment stocker les données
  9. Ranger les données en Python : listes et dictionnaires
  10. Récupérer des données : API et web scraping
  11. Passe à la pratique : 7 analyses avec Python
  12. Garder l'esprit critique : les pièges des données
  13. Le vocabulaire à connaître
  14. Commencer dès maintenant

Partie 1 : C'est quoi, l'analyse de données ? 🔍

Une donnée, c'est quoi ?

Une donnée (en anglais : data), c'est une information enregistrée quelque part : une note sur Pronote, la température d'une ville à midi, le nombre de pas que compte ton téléphone, le prix d'un article, un « like » sur une vidéo…

Prise toute seule, une donnée ne dit pas grand-chose. Mais quand on en rassemble des milliers, voire des milliards, et qu'on sait les interroger, elles permettent de répondre à de vraies questions :

  • Quels produits faut-il commander avant les fêtes pour ne pas tomber en rupture de stock ?
  • À quelle heure les trains sont-ils les plus bondés ?
  • Ce médicament fonctionne-t-il mieux que l'ancien ?
  • Quel joueur faut-il recruter pour gagner plus de matchs ?

Analyser des données, c'est un peu comme être détective : on rassemble des indices, on les trie, on cherche des liens, et on en tire des conclusions solides.

Le cycle de vie d'une donnée

Tous les projets d'analyse suivent à peu près les mêmes étapes :

Étape Ce qu'on fait Exemple
1. Poser la question On définit précisément ce qu'on cherche « Pourquoi les ventes ont-elles baissé en mars ? »
2. Collecter On récupère les données utiles Export des ventes, météo, avis clients
3. Stocker On les range de façon organisée Une base de données, des fichiers CSV
4. Nettoyer On corrige les erreurs, on retire les doublons, on gère les cases vides 30 % des lignes ont une date mal écrite
5. Analyser On calcule, on compare, on cherche des tendances Les ventes baissent surtout le week-end
6. Visualiser On crée des graphiques et des tableaux de bord Un graphique clair de l'évolution par jour
7. Communiquer et décider On explique ce qu'on a trouvé à des gens qui ne sont pas spécialistes « Il faut ouvrir le magasin plus tard le dimanche »

🧹 Le secret que personne ne dit Dans la vraie vie, le nettoyage prend souvent la plus grande partie du temps ! Les données arrivent rarement propres : fautes de frappe, cases vides, formats de dates différents, doublons… Savoir les nettoyer avec patience est l'une des compétences les plus précieuses du métier.

Un peu d'histoire (et des anecdotes)

🗺️ 1854, la carte qui a arrêté une épidémie. À Londres, une épidémie de choléra tue des centaines de personnes. À l'époque, on pense que la maladie se transmet par le « mauvais air ». Le médecin John Snow a une autre idée : il place chaque décès sur une carte du quartier… et remarque qu'ils se regroupent autour d'une pompe à eau de Broad Street. Il fait retirer la poignée de la pompe, et l'épidémie recule. C'est l'une des premières grandes analyses de données de l'histoire, et elle a sauvé des vies.

📊 Florence Nightingale, infirmière et statisticienne. Pendant la guerre de Crimée, dans les années 1850, l'infirmière britannique Florence Nightingale constate que beaucoup plus de soldats meurent de maladies liées au manque d'hygiène que de leurs blessures. Pour convaincre les dirigeants, elle invente des graphiques circulaires colorés très parlants. Ses diagrammes ont fait changer les règles d'hygiène des hôpitaux militaires. Elle a été la première femme élue à la Royal Statistical Society.

⚾ Le baseball et les statistiques. Au début des années 2000, l'équipe de baseball américaine des Oakland Athletics a très peu d'argent. Son manager décide de recruter les joueurs non pas sur leur réputation, mais grâce aux statistiques, en repérant ceux que les autres équipes sous-estiment. L'équipe enchaîne les victoires face à des clubs bien plus riches. Cette histoire a inspiré le livre et le film Moneyball, et aujourd'hui, tous les grands clubs de sport, y compris en football, ont leurs analystes de données.

💼 « Le métier le plus sexy du XXIe siècle ». En 2012, la très sérieuse revue Harvard Business Review publie un article qui qualifie le métier de data scientist de « job le plus sexy du XXIe siècle ». Le titre a fait le tour du monde et a beaucoup contribué à la popularité du métier.


Partie 2 : Les métiers de la data 👩‍💻

Le monde de la donnée compte plusieurs métiers qui travaillent ensemble, un peu comme une équipe de foot où chacun a son poste. Voici les principaux.

Le data analyst : le détective 🔎

Le data analyst (analyste de données) répond aux questions que se pose l'entreprise à partir des données existantes. Il interroge les bases de données, calcule des indicateurs, crée des tableaux de bord et explique ce qu'il a trouvé aux équipes (marketing, ventes, direction…).

  • Sa question favorite : « Que s'est-il passé, et pourquoi ? »
  • Ses outils : SQL, Excel, Power BI ou Tableau, Python.
  • Son super-pouvoir : rendre des chiffres compliqués clairs pour tout le monde.

Le data scientist : l'inventeur 🧪

Le data scientist va plus loin : il utilise les mathématiques, les statistiques et l'apprentissage automatique (machine learning) pour créer des modèles capables de faire des prédictions. Par exemple : prévoir les ventes du mois prochain, détecter une fraude à la carte bancaire, recommander une musique.

  • Sa question favorite : « Que va-t-il se passer, et que faut-il faire ? »
  • Ses outils : Python (pandas, scikit-learn…), SQL, les mathématiques.
  • Son super-pouvoir : apprendre à une machine à reconnaître des schémas dans les données.

Le data engineer : le bâtisseur 🏗️

Le data engineer (ingénieur des données) construit la « tuyauterie » : il crée et entretient les systèmes qui récupèrent, transportent et stockent les données, pour qu'elles arrivent propres et à l'heure chez les analystes et les scientists. Sans lui, pas de données exploitables !

  • Sa question favorite : « Comment faire arriver les bonnes données au bon endroit, de façon fiable ? »
  • Ses outils : SQL, Python, le cloud, les bases de données.
  • Son super-pouvoir : gérer des quantités gigantesques de données sans que rien ne casse.

Et les autres métiers de la famille

Métier En une phrase
Business analyst / analyste BI Fait le lien entre les besoins de l'entreprise et les données, souvent avec des tableaux de bord
Statisticien / chargé d'études Conçoit des enquêtes et des études, par exemple dans les instituts de sondage, la santé ou l'administration
Machine learning engineer Transforme les modèles des data scientists en vrais outils utilisés par des millions de personnes
Data architect Dessine les plans de l'organisation des données de toute une entreprise
Responsable IA et conformité Vérifie que les données et l'IA sont utilisées de façon légale et éthique
Chief Data Officer (CDO) Le chef d'orchestre de la stratégie données de l'entreprise

Combien ça gagne ?

Ce sont des métiers recherchés et plutôt bien payés. En France, selon les estimations de 2026, voici des ordres de grandeur pour un salaire brut annuel :

Métier Débutant Expérimenté
Data analyst 35 000 à 50 000 € 55 000 à 70 000 €
Data scientist 40 000 à 55 000 € 65 000 à 90 000 €
Data engineer 40 000 à 55 000 € 60 000 à 85 000 €

Les salaires varient selon la ville (Paris paie plus), la taille de l'entreprise et le secteur. Le « brut » est le salaire avant les cotisations sociales : ce que tu touches réellement, le « net », est environ 20 à 25 % plus bas.

Une journée type de data analyst

Pour te faire une idée, voici à quoi peut ressembler une journée de Sarah, data analyst dans une enseigne de magasins de sport :

  • 9 h : elle vérifie que le tableau de bord des ventes s'est bien mis à jour pendant la nuit.
  • 10 h : réunion avec l'équipe marketing, qui se demande pourquoi les ventes de vélos ont chuté dans l'ouest de la France.
  • 11 h : elle écrit des requêtes SQL pour extraire les ventes par magasin et par semaine.
  • 14 h : elle croise les ventes avec les données météo grâce à Python. Bingo : il a plu trois week-ends d'affilée dans l'Ouest !
  • 16 h : elle prépare deux graphiques clairs pour expliquer sa découverte.
  • 17 h : elle présente ses résultats. L'équipe décide de lancer une promotion sur les vêtements de pluie dans ces magasins.

Partie 3 : À quoi ça sert, concrètement ? 🌍

Les données sont partout, donc ces métiers aussi. C'est l'un de leurs grands atouts : tu peux travailler dans un domaine qui te passionne.

En entreprise et dans la société

Domaine Exemples d'utilisation des données
🏥 Santé Prévoir les épidémies de grippe, aider au diagnostic à partir d'images médicales, tester l'efficacité des traitements
⚽ Sport Analyser les performances des joueurs, préparer les tactiques, prévenir les blessures
🎵 Musique et streaming Recommander des chansons et des séries, créer les récaps de fin d'année
🎮 Jeux vidéo Équilibrer les personnages, repérer les tricheurs, comprendre où les joueurs abandonnent
🛒 Commerce Gérer les stocks, fixer les prix, comprendre ce que veulent les clients
🚆 Transports Prévoir l'affluence, adapter le nombre de trains, optimiser les trajets de livraison
🌦️ Météo et climat Faire les prévisions, suivre le réchauffement climatique
⚡ Énergie Prévoir la consommation d'électricité pour éviter les coupures
🏦 Banque Détecter les fraudes à la carte bancaire en quelques millisecondes
🏛️ Services publics Organiser les transports, les écoles, les hôpitaux grâce aux statistiques de l'INSEE

Et pour toi, dans ta vie perso

Pas besoin d'être un pro pour faire parler des données ! Avec quelques lignes de Python, tu peux :

  • suivre tes notes et voir dans quelles matières tu progresses (exemple 2 de la partie 11) ;
  • analyser ton argent de poche pour savoir où il part (exemple 3) ;
  • suivre tes performances sportives : temps de course, nombre de pompes, progression à la muscu ;
  • analyser ton temps d'écran et voir quelles applis te prennent le plus de temps ;
  • comparer des prix avant un gros achat (une console, un téléphone) ;
  • étudier tes statistiques de jeu et repérer tes points faibles ;
  • préparer un exposé avec de vrais chiffres officiels issus de l'open data.

Partie 4 : L'IA bouleverse le métier 🤖

Tu t'en doutes : l'intelligence artificielle, et en particulier les IA génératives comme les assistants conversationnels, change profondément ces métiers. Mais pas forcément comme on l'imagine.

Ce qui change

  • L'IA écrit une partie du code. Un analyste peut demander à une IA d'écrire une requête SQL ou un script Python, ce qui lui fait gagner beaucoup de temps.
  • Les outils deviennent « augmentés ». Les logiciels de tableaux de bord proposent désormais de poser une question en français (« montre-moi les ventes par région ») pour obtenir directement un graphique.
  • Les tâches répétitives s'automatisent. Les rapports qu'on refaisait à la main chaque semaine se génèrent tout seuls.
  • De nouveaux métiers apparaissent. Machine learning engineer, AI engineer, responsable de l'éthique de l'IA… et les data scientists travaillent de plus en plus avec les grands modèles de langage (les LLM).

Ce qui ne change pas (et devient même plus important)

  • Poser les bonnes questions. L'IA répond à ce qu'on lui demande. Savoir quoi demander, et pourquoi, reste un travail humain.
  • Vérifier. Une IA peut se tromper avec beaucoup d'assurance : on appelle ça une hallucination. Si tu ne comprends pas le code qu'elle te propose, tu ne pourras pas repérer ses erreurs. C'est pour ça qu'il faut vraiment apprendre les bases.
  • Comprendre le contexte. Une IA ne sait pas qu'une baisse des ventes vient d'une grève ou d'un magasin en travaux. L'analyste, si.
  • Raconter une histoire avec les données et convaincre des humains de prendre une décision.
  • Agir de façon éthique et légale. Protéger les données personnelles, éviter les biais (par exemple, un algorithme de recrutement qui défavoriserait les femmes parce qu'il a appris sur des données anciennes), respecter la loi.

⚖️ Ce que dit la loi En Europe, deux grands textes encadrent ces métiers. Le RGPD (Règlement général sur la protection des données) protège tes données personnelles depuis 2018. Et le Règlement européen sur l'IA (AI Act), entré en vigueur en 2024 et appliqué progressivement, fixe des règles selon le niveau de risque des systèmes d'IA. Les professionnels de la donnée doivent les connaître.

💡 En résumé L'IA ne remplace pas les data analysts : elle remplace surtout les tâches répétitives, et elle avantage ceux qui savent s'en servir intelligemment. Le profil recherché aujourd'hui, c'est quelqu'un qui maîtrise les bases (maths, code, données), qui utilise l'IA comme un assistant… et qui garde son esprit critique.


Partie 5 : Les compétences à développer 🧠

Les compétences techniques

Compétence Pourquoi c'est utile Ce que tu apprends déjà au lycée
Mathématiques et statistiques Moyenne, médiane, pourcentages, probabilités, écart-type : c'est la base de toute analyse Les statistiques et les probabilités en maths
Programmation Python et SQL pour manipuler les données Python en SNT, en maths, et en NSI si tu la suis
Bases de données Savoir où et comment les données sont rangées Les données structurées en SNT (Seconde), et SQL en NSI si tu la suis
Visualisation Choisir le bon graphique pour faire passer un message Lire et construire des graphiques en maths, SVT, physique, SES
Connaissance du domaine Comprendre le sport, la santé ou le commerce aide à poser les bonnes questions Toutes les matières !

Les qualités humaines (les soft skills)

  • La curiosité : l'envie de comprendre le « pourquoi » derrière les chiffres.
  • L'esprit critique : ne pas croire un résultat juste parce qu'il sort d'un ordinateur.
  • La rigueur : une petite erreur dans une formule peut fausser toute une analyse.
  • La communication : savoir expliquer simplement à quelqu'un qui n'y connaît rien. On parle de data storytelling, l'art de raconter une histoire avec les données.
  • L'anglais : la plupart des outils, des documentations et des forums d'entraide sont en anglais.
  • Le travail en équipe : un analyste travaille avec le marketing, les ingénieurs, la direction…

💡 Bonne nouvelle Tu n'as pas besoin d'être un génie des maths pour devenir data analyst. Il faut être à l'aise avec les nombres, logique et persévérant. Les compétences s'acquièrent avec la pratique, et la curiosité compte autant que les notes.


Partie 6 : Quel bac et quelles études ? 🎓

Au lycée : les choix qui comptent

Il n'existe pas « un » bac obligatoire, mais certains choix t'ouvriront beaucoup plus de portes.

Avec un bac général, voici les spécialités les plus utiles :

Spécialité Intérêt pour les métiers de la data Importance
Mathématiques Indispensable pour les statistiques, les probabilités et le machine learning ⭐⭐⭐ Essentielle
NSI (Numérique et sciences informatiques) Programmation Python, algorithmes, bases de données et SQL ⭐⭐ Un vrai plus, mais pas indispensable
SES (Sciences économiques et sociales) Lire et interpréter des statistiques, comprendre l'économie et la société ⭐⭐ Conseillée, surtout pour l'analyse « business »
Physique-chimie ou SI (Sciences de l'ingénieur) Démarche scientifique, mesures, modélisation ⭐⭐ Utile pour les écoles d'ingénieurs

💡 Les bons choix La spécialité mathématiques est le choix le plus important. Elle se combine très bien avec NSI, SES ou physique-chimie : il n'y a pas « une » bonne combinaison. En Terminale, si tu gardes les maths en spécialité, l'option maths expertes est un vrai plus pour les écoles d'ingénieurs et les études longues. Si tu abandonnes la spécialité maths en Terminale, prends au minimum l'option maths complémentaires.

💬 Pas de NSI dans ton lycée, ou tu ne l'as pas choisie ? Aucun problème ! La spécialité NSI n'est pas proposée dans tous les lycées, et beaucoup de data analysts et de data scientists ne l'ont jamais suivie. Les formations après le bac, y compris les BUT et les écoles d'ingénieurs, reprennent la programmation depuis le début : elles ne la demandent pas comme prérequis. Ce qui compte vraiment, ce sont les mathématiques et ta motivation.

Et si tu veux prendre de l'avance, tout ce dont tu as besoin est gratuit et accessible depuis chez toi : le Guide d'initiation à Python, les exemples de cette page, France-IOI, Kaggle Learn… Un projet perso mené sur ton temps libre (une analyse de tes données sportives, des statistiques sur ton jeu préféré) montre ta curiosité, et tu pourras le mentionner dans ton dossier Parcoursup, dans la rubrique des activités et centres d'intérêt. Les jurys comme les recruteurs apprécient beaucoup les élèves qui apprennent par eux-mêmes.

Avec un bac technologique, c'est possible aussi :

  • STMG, en particulier avec l'enseignement de spécialité Systèmes d'information de gestion (SIG) en Terminale, qui parle déjà de données et de bases de données ;
  • STI2D, notamment avec la spécialité Systèmes d'information et numérique (SIN).

Les BUT (voir plus bas) réservent une partie importante de leurs places aux bacheliers technologiques.

Les matières à ne pas négliger : le français (rédiger des rapports clairs), l'anglais (indispensable) et l'enseignement scientifique, sans oublier la SNT en Seconde, ta première vraie rencontre avec les données !

Après le bac : les principales formations

Formation Durée Pour qui ? Pour devenir…
BUT Science des données (en IUT, l'ancien « STID ») Bac+3 Bac général (maths conseillées), STMG, STI2D Data analyst, chargé d'études, analyste BI, ou poursuite en master ou école d'ingénieurs
BUT Informatique Bac+3 Bac général ou STI2D Développeur, data engineer (avec une poursuite d'études)
Licence MIASHS (maths et informatique appliquées aux sciences humaines et sociales) Bac+3 Bac général avec maths Poursuite en master data ou statistiques
Licence de mathématiques ou d'informatique Bac+3 Bac général avec maths Poursuite en master data science ou statistiques
Classe préparatoire scientifique (MPSI, MP2I, PCSI…) puis école d'ingénieurs Bac+5 Bac général, très bon niveau en maths Data scientist, data engineer, ML engineer
École d'ingénieurs post-bac (avec prépa intégrée) Bac+5 Bac général avec maths Data scientist, data engineer
Écoles de statistique (comme l'ENSAE ou l'ENSAI) Bac+5 Sur concours après une prépa, une licence ou un BUT Data scientist, statisticien, actuaire
Master en data science, statistique, informatique ou MIAGE Bac+5 Après une licence ou un BUT Data scientist, data engineer
École de commerce avec spécialisation business analytics Bac+5 Après une prépa ou en admission post-bac Data analyst, business analyst

🗺️ Les chemins les plus courants - Data analyst : souvent Bac+3 (un BUT Science des données, par exemple) à Bac+5. - Data scientist et data engineer : le plus souvent Bac+5 (master ou école d'ingénieurs).

💡 Le bon plan de l'alternance Beaucoup de formations (BUT, masters, écoles) peuvent se faire en alternance : tu passes une partie du temps en cours et l'autre en entreprise, tu es payé et tes études sont gratuites. C'est un excellent moyen d'acquérir de l'expérience, très appréciée par les recruteurs dans ces métiers.

🔄 Et si je change d'avis plus tard ? Les métiers de la data accueillent aussi beaucoup de personnes en reconversion, grâce à des formations intensives de quelques mois (les bootcamps). Et beaucoup de professionnels ont appris une partie de leurs compétences en autodidacte. Rien n'est jamais fermé !

Pour explorer les formations et leurs conditions d'admission, consulte les fiches métiers et formations de l'Onisep et la plateforme Parcoursup. Et n'hésite pas à en parler à ton professeur principal ou à un psychologue de l'Éducation nationale.


Partie 7 : Les outils des pros 🧰

Voici les outils que tu croiseras le plus souvent dans les offres d'emploi.

Les langages

  • 🐍 Python : le langage numéro un de l'analyse de données et de l'IA. Polyvalent, il sert à collecter, nettoyer, analyser, visualiser et prédire.
  • 🗄️ SQL (Structured Query Language) : le langage pour interroger les bases de données. Il existe depuis les années 1970 et il est toujours indispensable : presque toutes les offres d'emploi le demandent !
  • 📈 R : un langage spécialisé dans les statistiques, très utilisé dans la recherche et la santé.

Les bibliothèques Python

Une bibliothèque est un ensemble d'outils tout prêts qu'on ajoute à Python. Pas besoin de tout réinventer !

Bibliothèque À quoi elle sert
pandas Manipuler des tableaux de données (les DataFrames) : filtrer, trier, regrouper, calculer. C'est l'outil central de l'analyste Python
NumPy Faire des calculs mathématiques très rapides sur de grandes quantités de nombres
Matplotlib et Seaborn Créer des graphiques
Requests Récupérer des données sur Internet (pages web, API)
Beautiful Soup Extraire des informations d'une page web (le web scraping)
scikit-learn Le machine learning : créer des modèles de prédiction

Les logiciels

Outil À quoi il sert
Excel (ou LibreOffice Calc, Google Sheets) Le tableur, toujours très présent en entreprise pour les petites analyses
Power BI (Microsoft) Créer des tableaux de bord interactifs reliés aux données de l'entreprise. Très répandu en France
Tableau et Looker Studio Des concurrents de Power BI pour la visualisation
Jupyter Notebook Un « cahier » où l'on mélange du code Python, ses résultats, des graphiques et du texte. Le carnet de laboratoire des data scientists. VS Code sait les ouvrir
Git et GitHub Sauvegarder l'historique de son code et travailler à plusieurs
Le cloud (AWS, Azure, Google Cloud) Stocker et traiter d'énormes quantités de données sur des serveurs distants

💡 Par quoi commencer ? Python, pandas et SQL forment le trio de base. Un logiciel comme Power BI s'apprend ensuite en quelques semaines. Bonne nouvelle : tu as déjà commencé Python !


Partie 8 : Comment stocker les données 🗄️

Les données doivent être rangées quelque part. Selon leur quantité et leur usage, on choisit différents formats. Prenons les mêmes données (trois élèves et leurs notes) et voyons comment elles s'écrivent dans chaque format.

Le CSV : le tableau en texte brut

Le CSV (Comma-Separated Values, « valeurs séparées par des virgules ») est le format le plus simple : un fichier texte où chaque ligne est un enregistrement et où les colonnes sont séparées par des virgules (ou des points-virgules). Il s'ouvre avec n'importe quel tableur.

prenom,maths,francais
Inès,15,13
Lucas,11,16
Emma,18,12
  • ✅ Simple, léger, lisible par tous les logiciels.
  • ❌ Ne convient qu'aux tableaux simples, sans structure imbriquée.

Le JSON : le format du Web

Le JSON (JavaScript Object Notation) organise les données en paires « clé : valeur ». C'est le format utilisé par presque toutes les API du Web. Tu vas voir dans la partie suivante qu'il ressemble énormément aux dictionnaires de Python.

[
  {"prenom": "Inès", "maths": 15, "francais": 13},
  {"prenom": "Lucas", "maths": 11, "francais": 16},
  {"prenom": "Emma", "maths": 18, "francais": 12}
]
  • ✅ Très souple : on peut imbriquer des listes et des objets les uns dans les autres.
  • ❌ Moins pratique qu'un tableau pour faire des calculs directement.

Les bases de données SQL : l'armoire bien rangée

Une base de données relationnelle range les données dans des tables (comme des feuilles de tableur), reliées entre elles. Un logiciel appelé SGBD (système de gestion de base de données), comme MySQL, PostgreSQL ou SQLite, s'en occupe. On l'interroge avec le langage SQL.

SELECT prenom, maths
FROM eleves
WHERE maths >= 12
ORDER BY maths DESC;

Cette requête se lit presque comme une phrase : « sélectionne le prénom et la note de maths, depuis la table des élèves, là où la note de maths est au moins 12, triés par note décroissante ».

  • ✅ Fiable, rapide, gère des millions de lignes et plusieurs utilisateurs en même temps.
  • ❌ Il faut définir la structure à l'avance.

Les autres formats à connaître

Format En bref
Excel (.xlsx) Pratique pour partager avec des collègues, mais limité à environ un million de lignes
Bases NoSQL (comme MongoDB) Stockent des documents ressemblant à du JSON, très souples pour les données variées
Parquet Un format compressé très rapide, utilisé pour le big data
Data warehouse et data lake D'immenses espaces de stockage qui centralisent toutes les données d'une entreprise

Partie 9 : Ranger les données en Python : listes et dictionnaires 📦

Avant d'utiliser des outils puissants comme pandas, il faut connaître les « boîtes de rangement » de base de Python. Tu as découvert les listes dans le guide d'initiation ; voici maintenant leur partenaire indispensable : le dictionnaire.

Liste ou dictionnaire ?

  • Une liste [ ] range des valeurs dans l'ordre, et on les retrouve par leur position (0, 1, 2…). C'est comme une file d'attente.
  • Un dictionnaire { } range des valeurs associées à une clé, et on les retrouve par leur nom. C'est comme… un dictionnaire : on cherche le mot (la clé) pour trouver sa définition (la valeur).
Structure Syntaxe Accès Exemple d'usage
Liste [14, 9.5, 17] Par position : notes[0] Une série de notes, une liste de courses
Dictionnaire {"prenom": "Inès", "age": 15} Par clé : eleve["prenom"] La fiche d'un élève, les réglages d'un jeu
Tuple (48.85, 2.35) Par position, mais non modifiable Des coordonnées GPS
Ensemble (set) {"SNT", "Latin"} Pas d'ordre, pas de doublons Une liste d'options sans doublons

La structure reine : la liste de dictionnaires

Une liste de dictionnaires, c'est un tableau : chaque dictionnaire est une ligne, et chaque clé est une colonne. C'est exactement la forme des données JSON que renvoient les API. Teste ce script (structures.py) :

import json

# Une LISTE : plusieurs valeurs rangées dans l'ordre, entre crochets [ ]
notes = [14, 9.5, 17, 12]
print(notes[0])            # 14 : le premier élément (on compte à partir de 0)
print(sum(notes) / len(notes))

# Un DICTIONNAIRE : des paires « clé : valeur », entre accolades { }
eleve = {
    "prenom": "Inès",
    "classe": "2nde B",
    "age": 15,
    "options": ["SNT", "Latin"],     # une valeur peut être une liste !
}
print(eleve["prenom"])     # on accède à une valeur grâce à sa clé
eleve["age"] = 16          # on modifie une valeur
eleve["ville"] = "Rennes"  # on ajoute une nouvelle paire

# Une LISTE DE DICTIONNAIRES : la structure reine de l'analyse de données
# Chaque dictionnaire est une ligne, chaque clé est une colonne
classe = [
    {"prenom": "Inès",  "maths": 15, "francais": 13},
    {"prenom": "Lucas", "maths": 11, "francais": 16},
    {"prenom": "Emma",  "maths": 18, "francais": 12},
]
for e in classe:
    moyenne = (e["maths"] + e["francais"]) / 2
    print(f"{e['prenom']} : {moyenne}")

# Sauvegarder en JSON… et le relire : un dictionnaire Python et du JSON se ressemblent énormément !
with open("classe.json", "w", encoding="utf-8") as fichier:
    json.dump(classe, fichier, ensure_ascii=False, indent=2)

with open("classe.json", encoding="utf-8") as fichier:
    donnees = json.load(fichier)
print(donnees[2]["prenom"])   # Emma

💡 JSON et Python, presque jumeaux Compare le fichier classe.json créé par le script avec la liste de dictionnaires du code : ils sont presque identiques ! C'est pour ça que Python est si pratique pour travailler avec les données du Web. Le module json fait la traduction dans les deux sens : json.dump() pour écrire, json.load() pour lire.

⚠️ Piège classique Si tu demandes une clé qui n'existe pas, par exemple eleve["nom"], Python répond par une KeyError. Pour éviter le plantage, utilise eleve.get("nom") : si la clé n'existe pas, tu obtiens None au lieu d'une erreur.

Du dictionnaire au DataFrame

Quand les données deviennent nombreuses, on passe à pandas, qui transforme une liste de dictionnaires (ou un dictionnaire de listes) en DataFrame : un vrai tableau, avec des fonctions pour filtrer, trier, regrouper et calculer en une seule ligne. C'est ce qu'on va faire dans la partie 11.


Partie 10 : Récupérer des données : API et web scraping 🌐

Avant d'analyser des données, il faut se les procurer. Sur Internet, il existe deux grandes méthodes.

Les API : demander poliment

Une API (Application Programming Interface, « interface de programmation ») est une porte d'entrée qu'un site ou un service met à disposition des programmes pour échanger des données.

Imagine un restaurant : tu ne vas pas en cuisine te servir toi-même. Tu passes commande au serveur, qui transmet à la cuisine et te rapporte ton plat. L'API, c'est le serveur : ton programme envoie une requête à une adresse précise, et le service lui renvoie les données demandées, le plus souvent au format JSON.

Exemples d'API : la météo, les horaires de transports, les données de l'État français, les statistiques de certains jeux vidéo…

  • ✅ C'est la méthode officielle et fiable : les données sont propres et le site est d'accord pour les partager.
  • ❌ Toutes les données n'ont pas d'API, et certaines API demandent une inscription (une clé d'API) ou sont payantes.

Le web scraping : copier automatiquement

Le web scraping (de l'anglais to scrape, « gratter ») consiste à écrire un programme qui visite une page web à ta place et en extrait automatiquement les informations qui t'intéressent. C'est un copier-coller automatisé, capable de traiter des centaines de pages en quelques minutes.

Il se fait en deux étapes :

  1. Télécharger le code HTML de la page (avec la bibliothèque Requests).
  2. Analyser ce code pour en extraire les informations voulues : on dit qu'on le parse (avec Beautiful Soup).

À quoi ça sert ?

  • Surveiller des prix : comparer les tarifs de concurrents, ou être alerté quand un produit baisse.
  • Étudier un marché : rassembler des avis clients pour savoir ce que les gens pensent d'un produit.
  • Faire de la veille : suivre les nouvelles offres d'emploi ou les nouveaux articles sur un sujet.
  • Constituer des jeux de données pour la recherche ou pour entraîner des modèles d'IA.

Les outils de scraping en Python :

Outil Rôle
Requests Télécharge la page web
Beautiful Soup Analyse le HTML et en extrait les informations
Selenium Pilote un vrai navigateur, utile pour les sites qui chargent leur contenu avec JavaScript
Scrapy Un outil complet pour aspirer de très nombreuses pages, plus difficile à prendre en main

🔎 L'astuce indispensable : l'outil « Inspecter » Pour savoir où se cache une information dans une page, fais un clic droit dessus dans ton navigateur et choisis Inspecter. Le code HTML s'affiche, avec la balise qui contient l'information : c'est elle que tu indiqueras à Beautiful Soup.

⚖️ Les règles du scraping responsable Ce n'est pas parce qu'une information est visible qu'on a le droit de la collecter en masse. Avant de scraper un site : - Cherche d'abord s'il existe une API : c'est toujours la meilleure solution. - Lis les conditions d'utilisation (les CGU) du site : certaines interdisent le scraping. - Consulte le fichier robots.txt (par exemple https://www.exemple.fr/robots.txt), qui indique aux robots les pages qu'ils peuvent visiter. - Ne collecte jamais de données personnelles (noms, photos, profils de personnes) : le RGPD les protège. - Respecte les droits d'auteur : des textes ou des images ne peuvent pas être republiés librement. - Ne surcharge pas le site : espace tes requêtes, sinon tu risques de le ralentir ou de le faire planter, et de te faire bloquer.


Partie 11 : Passe à la pratique : 7 analyses avec Python 💻

C'est le moment de mettre les mains dans le code ! Pour chaque exemple, crée un fichier .py dans ton dossier Code_Python, copie le code, enregistre et lance-le avec le bouton ▷.

Préparation : installer les bibliothèques

Les bibliothèques de data ne sont pas livrées avec Python : il faut les installer une fois pour toutes avec pip, l'installateur de bibliothèques de Python. Ouvre le terminal de VS Code (Ctrl + ù) et tape :

py -m pip install pandas matplotlib requests beautifulsoup4

Patiente quelques instants : pip télécharge et installe tout. NumPy est installé automatiquement avec pandas.

🆘 Ça ne marche pas ? - Si Windows ne reconnaît pas py, essaie python -m pip install … à la place. - Si ton script affiche ModuleNotFoundError: No module named 'pandas', c'est souvent que VS Code utilise une autre version de Python que celle où tu as installé les bibliothèques. Appuie sur Ctrl + Maj + P, tape Python: Select Interpreter et choisis la bonne version. - Les exemples 5 et 6 ont besoin d'une connexion Internet.

Exemple 1 : Les listes et dictionnaires

C'est le script structures.py de la partie 9. Si tu ne l'as pas encore testé, c'est le moment !

Exemple 2 : Analyser tes notes avec pandas 📒

On découvre pandas : créer un tableau, le filtrer, regrouper les notes par matière et tracer un graphique. Nomme ton fichier analyse_notes.py.

import pandas as pd
import matplotlib.pyplot as plt

# 1. Les données : un dictionnaire de listes (une liste par colonne)
donnees = {
    "matiere": ["Maths", "Français", "Maths", "Anglais", "SNT", "Français", "Anglais", "Maths", "SNT", "Histoire"],
    "trimestre": [1, 1, 1, 1, 1, 2, 2, 2, 2, 2],
    "note": [12, 14, 9, 16, 17, 11, 15, 14, 18, 13],
    "coefficient": [2, 2, 1, 1, 1, 2, 1, 2, 1, 1],
}

# 2. On transforme ce dictionnaire en DataFrame : un tableau, comme dans un tableur
df = pd.DataFrame(donnees)
print(df.head())          # affiche les 5 premières lignes
print(df.describe())      # statistiques express : moyenne, min, max, écart-type…

# 3. Quelques questions posées aux données
print("Meilleure note :", df["note"].max())
print("Notes au-dessus de 15 :")
print(df[df["note"] >= 15])                    # on FILTRE les lignes

moyennes = df.groupby("matiere")["note"].mean()  # on REGROUPE par matière
print(moyennes.sort_values(ascending=False))

# Moyenne pondérée par les coefficients
moyenne_generale = (df["note"] * df["coefficient"]).sum() / df["coefficient"].sum()
print(f"Moyenne générale pondérée : {moyenne_generale:.2f}")

# 4. Un graphique pour voir d'un coup d'œil
moyennes.sort_values().plot(kind="barh", color="#306998")
plt.axvline(10, color="red", linestyle="--")   # une ligne rouge sur la moyenne
plt.title("Ma moyenne par matière")
plt.xlabel("Note sur 20")
plt.tight_layout()
plt.show()

Une partie de ce que tu verras dans le terminal :

matiere
SNT         17.500000
Anglais     15.500000
Histoire    13.000000
Français    12.500000
Maths       11.666667
Name: note, dtype: float64
Moyenne générale pondérée : 13.57

Puis une fenêtre s'ouvre avec un graphique en barres. Ferme-la pour terminer le programme.

Ce que tu apprends : créer un DataFrame, le résumer avec describe(), filtrer des lignes avec une condition, regrouper avec groupby() et tracer un graphique avec plot().

💡 Les 3 gestes de base de l'analyste Presque toutes les analyses reposent sur trois opérations : filtrer (garder certaines lignes), regrouper (rassembler par catégorie) et agréger (calculer une somme, une moyenne, un maximum). En SQL, ce sont WHERE, GROUP BY et SUM() ou AVG(). En pandas, ce sont df[condition], groupby() et sum() ou mean().

Exemple 3 : Où part ton argent de poche ? 💸

Cette fois, les données viennent d'un fichier CSV. Crée d'abord un fichier depenses.csv dans le même dossier que ton script, avec ce contenu :

date,categorie,description,montant
2026-09-02,Snacks,Boulangerie,2.50
2026-09-05,Jeux vidéo,Skin Fortnite,9.99
2026-09-08,Sorties,Cinéma,7.00
2026-09-12,Snacks,Distributeur,1.80
2026-09-15,Livres,Manga,7.20
2026-09-20,Sorties,Bowling,6.50
2026-09-26,Snacks,Boulangerie,3.10
2026-10-01,Jeux vidéo,Abonnement,4.99
2026-10-03,Snacks,Kebab,8.00
2026-10-04,Livres,Manga,7.20
2026-10-07,Sorties,Patinoire,5.50
2026-10-09,Snacks,Boulangerie,2.50

Puis crée le script analyse_depenses.py :

import pandas as pd
import matplotlib.pyplot as plt

# 1. Lire le fichier CSV (il doit être dans le même dossier que ce script)
df = pd.read_csv("depenses.csv", parse_dates=["date"])
print(f"{len(df)} dépenses chargées, pour un total de {df['montant'].sum():.2f} €")

# 2. Combien par catégorie ?
par_categorie = df.groupby("categorie")["montant"].sum().sort_values(ascending=False)
print(par_categorie)

# 3. Combien par mois ? On crée une nouvelle colonne avec le mois
df["mois"] = df["date"].dt.strftime("%Y-%m")
par_mois = df.groupby("mois")["montant"].sum()
print(par_mois)

# 4. La plus grosse dépense
plus_chere = df.loc[df["montant"].idxmax()]
print(f"Plus grosse dépense : {plus_chere['description']} ({plus_chere['montant']} €)")

# 5. Deux graphiques côte à côte
fig, (gauche, droite) = plt.subplots(1, 2, figsize=(10, 4))
par_categorie.plot(kind="pie", ax=gauche, autopct="%1.0f %%", ylabel="")
gauche.set_title("Où part mon argent ?")
par_mois.plot(kind="bar", ax=droite, color="#ffd43b", edgecolor="black")
droite.set_title("Dépenses par mois (€)")
plt.tight_layout()
plt.show()

Résultat dans le terminal :

12 dépenses chargées, pour un total de 66.28 €
categorie
Sorties       19.00
Snacks        17.90
Jeux vidéo    14.98
Livres        14.40
Name: montant, dtype: float64

Et deux graphiques s'affichent : un camembert par catégorie et des barres par mois.

Ce que tu apprends : lire un fichier CSV avec read_csv(), manipuler des dates, créer une nouvelle colonne et afficher deux graphiques côte à côte.

🎯 À toi de jouer Remplace les lignes du fichier CSV par tes vraies dépenses du mois. Tu peux aussi faire la même chose avec ton temps d'écran, tes séances de sport ou tes heures de sommeil !

Exemple 4 : Ta première base de données SQL 🗄️

Python contient une petite base de données, SQLite, qu'on peut utiliser sans rien installer. On va y ranger tes jeux vidéo et l'interroger en SQL. Nomme ton fichier base_jeux.py.

import sqlite3
import pandas as pd

# SQLite est une base de données livrée avec Python : rien à installer !
connexion = sqlite3.connect("ma_base.db")   # crée le fichier s'il n'existe pas
curseur = connexion.cursor()

# 1. Créer une table (comme une feuille de tableur avec des colonnes bien définies)
curseur.execute("DROP TABLE IF EXISTS jeux")
curseur.execute("""
    CREATE TABLE jeux (
        id INTEGER PRIMARY KEY,
        titre TEXT,
        genre TEXT,
        annee INTEGER,
        heures_jouees REAL
    )
""")

# 2. Ajouter des lignes
jeux = [
    ("Minecraft", "Bac à sable", 2011, 320),
    ("Mario Kart 8", "Course", 2014, 85),
    ("Rocket League", "Sport", 2015, 140),
    ("Zelda: Tears of the Kingdom", "Aventure", 2023, 110),
    ("Tetris", "Réflexion", 1984, 25),
    ("Animal Crossing", "Simulation", 2020, 60),
]
curseur.executemany("INSERT INTO jeux (titre, genre, annee, heures_jouees) VALUES (?, ?, ?, ?)", jeux)
connexion.commit()   # on valide l'enregistrement

# 3. Interroger la base avec des requêtes SQL
print("Jeux sortis après 2014 :")
for ligne in curseur.execute("SELECT titre, annee FROM jeux WHERE annee > 2014 ORDER BY annee"):
    print("  ", ligne)

total = curseur.execute("SELECT SUM(heures_jouees) FROM jeux").fetchone()[0]
print(f"Temps de jeu total : {total} heures")

# 4. Bonus : pandas sait lire directement le résultat d'une requête SQL
df = pd.read_sql("SELECT titre, heures_jouees FROM jeux ORDER BY heures_jouees DESC LIMIT 3", connexion)
print(df)

connexion.close()

Résultat :

Jeux sortis après 2014 :
   ('Rocket League', 2015)
   ('Animal Crossing', 2020)
   ('Zelda: Tears of the Kingdom', 2023)
Temps de jeu total : 740.0 heures

Ce que tu apprends : créer une table avec CREATE TABLE, ajouter des lignes avec INSERT, et interroger la base avec SELECT, WHERE, ORDER BY et SUM().

💡 Les mots-clés SQL essentiels SELECT (quelles colonnes), FROM (quelle table), WHERE (quelle condition), ORDER BY (dans quel ordre), GROUP BY (regrouper), LIMIT (combien de lignes). Avec ces six mots, tu sais déjà écrire la majorité des requêtes d'un analyste débutant !

Exemple 5 : Interroger une API publique 🏙️

On utilise l'API Géo de l'État français, gratuite et sans inscription, pour récupérer toutes les communes de ton département, calculer leur densité de population et afficher les dix plus peuplées. Nomme ton fichier communes.py.

import requests
import pandas as pd
import matplotlib.pyplot as plt

# L'API Géo de l'État français : gratuite, sans inscription, parfaite pour s'entraîner
departement = input("Numéro de ton département (ex : 35, 69, 2A) : ")
url = f"https://geo.api.gouv.fr/departements/{departement}/communes"
parametres = {"fields": "nom,population,surface"}   # les informations qu'on veut recevoir

# 1. On envoie la requête et on vérifie que tout s'est bien passé
reponse = requests.get(url, params=parametres, timeout=10)
if reponse.status_code != 200:
    print(f"⚠️ Erreur {reponse.status_code} : vérifie le numéro du département.")
    exit()

# 2. La réponse est en JSON : requests la transforme en liste de dictionnaires
communes = reponse.json()
print(f"{len(communes)} communes reçues. Exemple : {communes[0]}")

# 3. On la transforme en DataFrame pour l'analyser
df = pd.DataFrame(communes)
df = df.dropna(subset=["population", "surface"])   # nettoyage : on retire les lignes incomplètes
df["population"] = df["population"].astype(int)     # on s'assure que la population est un nombre entier

# La surface est donnée en hectares : 1 km² = 100 hectares
df["surface_km2"] = df["surface"] / 100
df["densite"] = (df["population"] / df["surface_km2"]).round().astype(int)   # habitants par km²

print(f"Population totale : {df['population'].sum():,} habitants".replace(",", " "))
print(f"Population médiane d'une commune : {df['population'].median():.0f} habitants")

top10 = df.sort_values("population", ascending=False).head(10)
print(top10[["nom", "population", "densite"]].to_string(index=False))

# 4. On sauvegarde les données pour les réutiliser plus tard
df.to_csv(f"communes_{departement}.csv", index=False)

# 5. Le graphique
top10.sort_values("population").plot(x="nom", y="population", kind="barh", legend=False, color="#306998")
plt.title(f"Les 10 communes les plus peuplées du département {departement}")
plt.xlabel("Habitants")
plt.ylabel("")
plt.tight_layout()
plt.show()

Le programme te demande ton numéro de département, puis affiche les dix communes les plus peuplées, enregistre un fichier CSV et trace un graphique.

Ce que tu apprends : envoyer une requête à une API avec requests.get(), vérifier le code de réponse (200 signifie « tout va bien », 404 « introuvable »), transformer du JSON en DataFrame, nettoyer les lignes incomplètes avec dropna() et sauvegarder le résultat avec to_csv().

💡 Ouvre l'API dans ton navigateur ! Copie cette adresse dans ton navigateur : https://geo.api.gouv.fr/departements/35/communes?fields=nom,population. Tu verras directement le JSON brut que reçoit ton programme. C'est un excellent réflexe pour comprendre la structure des données avant de coder.

Exemple 6 : Le web scraping en pratique 📚

On va récupérer les titres, les prix et les notes des livres de books.toscrape.com, un faux site de librairie créé exprès pour s'entraîner au scraping. Tu peux donc t'exercer dessus sans aucun souci. Nomme ton fichier scraping_livres.py.

import requests
from bs4 import BeautifulSoup
import pandas as pd

# books.toscrape.com est un faux site de librairie créé EXPRÈS pour s'entraîner au scraping
url = "https://books.toscrape.com/"
reponse = requests.get(url, timeout=10)

# 1. On donne le code HTML de la page à BeautifulSoup, qui va le « comprendre »
soupe = BeautifulSoup(reponse.content, "html.parser")

# 2. Chaque livre est dans une balise <article class="product_pod">
livres = []
notes_en_lettres = {"One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5}

for article in soupe.find_all("article", class_="product_pod"):
    titre = article.h3.a["title"]                              # le titre est dans l'attribut title du lien
    prix_texte = article.find("p", class_="price_color").text  # par exemple "£51.77"
    prix = float(prix_texte.replace("£", "").replace("Â", ""))
    classes_etoiles = article.find("p", class_="star-rating")["class"]   # ["star-rating", "Three"]
    etoiles = notes_en_lettres[classes_etoiles[1]]
    livres.append({"titre": titre, "prix": prix, "etoiles": etoiles})

# 3. On range tout dans un DataFrame et on analyse
df = pd.DataFrame(livres)
print(f"{len(df)} livres récupérés")
print(f"Prix moyen : {df['prix'].mean():.2f} £")
print("Prix moyen selon le nombre d'étoiles :")
print(df.groupby("etoiles")["prix"].mean().round(2))

print("Les livres 5 étoiles les moins chers :")
print(df[df["etoiles"] == 5].sort_values("prix").head(3).to_string(index=False))

df.to_csv("livres.csv", index=False)

Ce que tu apprends : télécharger une page avec requests, la donner à Beautiful Soup, trouver des balises avec find_all() et find(), lire le texte et les attributs d'une balise, puis analyser le tout avec pandas.

🔎 Exercice d'enquête Ouvre books.toscrape.com dans ton navigateur, fais un clic droit sur le titre d'un livre et choisis Inspecter. Retrouve la balise <article class="product_pod"> et le lien qui contient le titre : c'est exactement ce que cherche le programme !

Exemple 7 : Faire une prédiction, comme un data scientist 🔮

Les data scientists créent des modèles pour prédire l'avenir. Le plus simple de tous est la régression linéaire : on cherche la droite qui passe au plus près d'un nuage de points. Ici, on cherche le lien entre le temps de révision et la note. Nomme ton fichier prediction.py.

import numpy as np
import matplotlib.pyplot as plt

# Les données de 10 élèves : heures de révision et note obtenue au contrôle
heures = np.array([0.5, 1, 1.5, 2, 2.5, 3, 4, 4.5, 5, 6])
notes = np.array([7, 8, 10, 9.5, 12, 12.5, 14, 13.5, 16, 17])

# Le « modèle » : on cherche la droite qui passe au plus près des points
# (on appelle ça une régression linéaire)
pente, ordonnee = np.polyfit(heures, notes, 1)
print(f"Modèle trouvé : note ≈ {pente:.2f} × heures + {ordonnee:.2f}")

# On utilise le modèle pour faire une PRÉDICTION
for h in [1, 3.5, 7]:
    prediction = pente * h + ordonnee
    print(f"Avec {h} h de révision, note prédite : {prediction:.1f}/20")

# On vérifie la force du lien entre les deux (la corrélation, entre -1 et 1)
correlation = np.corrcoef(heures, notes)[0, 1]
print(f"Corrélation : {correlation:.2f}")

# Le graphique : les points réels et la droite du modèle
plt.scatter(heures, notes, label="Élèves")
x = np.linspace(0, 7, 50)
plt.plot(x, pente * x + ordonnee, color="red", label="Modèle")
plt.xlabel("Heures de révision")
plt.ylabel("Note sur 20")
plt.title("Plus on révise, plus la note monte… en moyenne !")
plt.legend()
plt.show()

Résultat :

Modèle trouvé : note ≈ 1.78 × heures + 6.62
Avec 1 h de révision, note prédite : 8.4/20
Avec 3.5 h de révision, note prédite : 12.8/20
Avec 7 h de révision, note prédite : 19.1/20
Corrélation : 0.98

Ce que tu apprends : ce qu'est un modèle, comment il s'entraîne sur des données (polyfit) puis sert à prédire, et comment mesurer une corrélation.

⚠️ Attention aux prédictions trop belles Essaie de prédire la note pour 10 heures de révision : le modèle annonce plus de 20/20, ce qui est impossible ! Un modèle n'est valable que dans la zone où il a appris (ici, entre 0,5 et 6 heures). Et il n'a été entraîné que sur 10 élèves : c'est bien trop peu pour une conclusion sérieuse. C'est exactement le genre de piège qu'un bon data scientist sait repérer.


Partie 12 : Garder l'esprit critique : les pièges des données 🕵️

Les données ne mentent pas… mais on peut leur faire dire n'importe quoi. Voici les pièges que tout analyste apprend à éviter, et que tu croiseras aussi dans les médias et sur les réseaux sociaux.

Corrélation n'est pas causalité

Les ventes de glaces et le nombre de coups de soleil augmentent en même temps. Est-ce que manger des glaces donne des coups de soleil ? Bien sûr que non : les deux sont causés par un troisième facteur, le soleil. Quand deux choses varient ensemble, on dit qu'elles sont corrélées, mais cela ne prouve pas que l'une cause l'autre.

La moyenne peut tromper

Dans une salle, neuf personnes gagnent 2 000 € par mois. Un milliardaire entre. Le salaire moyen de la salle explose, alors que personne n'est devenu plus riche ! La médiane (la valeur du milieu quand on range les nombres dans l'ordre) résiste mieux aux valeurs extrêmes. C'est pour ça qu'on parle souvent de salaire médian plutôt que de salaire moyen.

Les graphiques trompeurs

Un graphique dont l'axe vertical ne commence pas à zéro peut transformer une petite hausse de 2 % en une énorme montagne. Regarde toujours les axes et les échelles avant de tirer une conclusion.

Les biais d'échantillon

Si tu fais un sondage sur les jeux vidéo préférés uniquement auprès du club e-sport du lycée, tes résultats ne représenteront pas tous les élèves. Un échantillon doit être représentatif de la population qu'on veut étudier. Et une IA entraînée sur des données biaisées reproduira ces biais.

« Garbage in, garbage out »

Cette expression anglaise, que les informaticiens adorent, signifie « déchets en entrée, déchets en sortie ». Si tes données de départ sont fausses ou incomplètes, même le meilleur algorithme du monde produira des résultats faux. D'où l'importance du nettoyage !


Partie 13 : Le vocabulaire à connaître 📖

Voici les mots que tu entendras partout dans le monde de la data. Pas besoin de tout retenir d'un coup : reviens ici quand tu croises un terme inconnu.

Les données et leur stockage

Terme Définition
Donnée (data) Une information enregistrée : un nombre, un texte, une date, une image…
Jeu de données (dataset) Un ensemble de données rassemblées sur un même sujet
Base de données Un ensemble de données organisées et stockées pour être facilement consultées
SGBD Système de gestion de base de données : le logiciel qui gère une base (MySQL, PostgreSQL, SQLite…)
Table Un tableau dans une base de données, avec des lignes et des colonnes
Ligne (ou enregistrement) Un élément du tableau : un élève, une vente, une commune…
Colonne (ou champ, variable) Une caractéristique commune à toutes les lignes : le prénom, le prix, la date…
Clé primaire Une colonne qui identifie chaque ligne de façon unique, comme un numéro d'identifiant
Requête Une question posée à une base de données ou à un serveur
SQL Le langage pour interroger les bases de données relationnelles
CSV Un format de fichier texte où les colonnes sont séparées par des virgules
JSON Un format de fichier organisé en paires « clé : valeur », très utilisé sur le Web
Métadonnées Des données qui décrivent d'autres données : la date d'une photo, l'auteur d'un fichier…
Big data Des volumes de données si énormes qu'il faut des outils spéciaux pour les traiter
Data warehouse Un entrepôt de données qui centralise les données propres et organisées d'une entreprise
Data lake Un « lac » de données qui stocke des données brutes de toutes sortes, avant tri
Cloud Des serveurs distants, accessibles par Internet, pour stocker et calculer
Open data Des données publiées librement, que tout le monde peut utiliser

Python et la programmation

Terme Définition
Bibliothèque (ou module, library) Un ensemble d'outils prêts à l'emploi qu'on ajoute à Python avec import
pip L'outil qui installe les bibliothèques Python
Liste Une collection de valeurs ordonnées, entre crochets [ ]
Dictionnaire Une collection de paires « clé : valeur », entre accolades { }
DataFrame Le tableau de données de pandas, avec des lignes et des colonnes nommées
Notebook Un document qui mélange code, résultats, graphiques et texte (Jupyter)
Script Un fichier de code qu'on exécute (.py)
Algorithme Une suite d'instructions précises pour résoudre un problème

Le Web et les échanges de données

Terme Définition
API Une interface qui permet à des programmes d'échanger des données
Endpoint Une adresse précise d'une API qui donne accès à un type de données
Clé d'API Un code secret qui identifie ton programme auprès d'une API
Requête HTTP Un message envoyé à un serveur web (GET pour demander, POST pour envoyer)
Code de statut Le code de réponse du serveur : 200 (OK), 404 (introuvable), 500 (erreur du serveur)…
HTML Le langage qui décrit le contenu des pages web, avec des balises
Web scraping L'extraction automatique d'informations depuis des pages web
Parser Analyser un texte (comme du HTML ou du JSON) pour en extraire la structure
robots.txt Un fichier qui indique aux robots quelles pages d'un site ils peuvent visiter

L'analyse et les statistiques

Terme Définition
Nettoyage (data cleaning) Corriger les erreurs, retirer les doublons, gérer les valeurs manquantes
Valeur manquante (NaN) Une case vide dans un tableau. NaN signifie Not a Number
Doublon Une ligne présente plusieurs fois par erreur
Valeur aberrante (outlier) Une valeur anormalement éloignée des autres, parfois une erreur de saisie
Moyenne La somme des valeurs divisée par leur nombre
Médiane La valeur du milieu quand on range les valeurs dans l'ordre
Écart-type Une mesure de la dispersion des valeurs autour de la moyenne
Corrélation Le fait que deux variables évoluent ensemble (mesurée entre -1 et 1)
Échantillon Une partie de la population étudiée, qui doit être représentative
Biais Une erreur systématique qui fausse les résultats
Agrégation Le calcul d'un résumé (somme, moyenne, maximum…) sur un groupe de données
KPI Key Performance Indicator : un indicateur clé, comme le chiffre d'affaires ou le nombre de clients
Tableau de bord (dashboard) Un écran qui rassemble les indicateurs et graphiques importants
BI (Business Intelligence) L'informatique décisionnelle : les outils qui aident les entreprises à décider grâce aux données
Data visualisation (dataviz) L'art de représenter les données sous forme de graphiques
ETL / pipeline La chaîne automatique qui extrait (Extract), transforme (Transform) et charge (Load) les données

L'intelligence artificielle

Terme Définition
Intelligence artificielle (IA) L'ensemble des techniques qui permettent à une machine d'imiter certaines capacités humaines
Machine learning L'apprentissage automatique : la machine apprend à partir d'exemples au lieu de suivre des règles écrites à la main
Modèle Le résultat de l'apprentissage, capable de faire des prédictions sur de nouvelles données
Entraînement La phase où le modèle apprend à partir des données
Deep learning L'apprentissage profond, basé sur des réseaux de neurones artificiels
LLM Large Language Model : un grand modèle de langage, comme ceux des assistants conversationnels
Hallucination Une réponse fausse donnée avec assurance par une IA

Le droit et l'éthique

Terme Définition
Donnée personnelle Toute information qui permet d'identifier une personne : nom, photo, adresse, numéro de téléphone…
RGPD Le Règlement général sur la protection des données, qui protège les données personnelles en Europe
Anonymisation Le fait de rendre impossible l'identification des personnes dans un jeu de données
CNIL La Commission nationale de l'informatique et des libertés, qui veille au respect de la vie privée en France
AI Act Le règlement européen qui encadre les systèmes d'intelligence artificielle

Partie 14 : Commencer dès maintenant 🚀

Tu n'as pas besoin d'attendre le bac pour te lancer. Voici comment progresser dès aujourd'hui.

Trouver des données pour t'entraîner

  • 🇫🇷 data.gouv.fr : la plateforme de l'open data français. Des milliers de jeux de données gratuits : prénoms donnés en France depuis 1900, qualité de l'air, résultats d'élections, accidents de la route…
  • 📊 INSEE : l'Institut national de la statistique, pour tout savoir sur la population et l'économie françaises.
  • 🏆 Kaggle : la plateforme mondiale des data scientists, avec des jeux de données sur tous les sujets (sport, jeux vidéo, films, musique…), des cours gratuits et des compétitions.

Des idées de projets perso

  • Les prénoms les plus donnés en France l'année de ta naissance (données de l'INSEE).
  • Un tableau de bord de tes notes sur toute l'année.
  • L'évolution de la température de ta ville depuis 50 ans.
  • Les statistiques de ton équipe de sport préférée sur plusieurs saisons.
  • Un comparateur de prix sur un site d'entraînement au scraping.

Des ressources pour continuer

  • 🐼 Kaggle Learn : des mini-cours gratuits et pratiques sur Python, pandas, SQL et le machine learning (en anglais).
  • 🎓 OpenClassrooms : des cours en français sur l'analyse de données, SQL et Python.
  • 🧭 Onisep : les fiches métiers officielles (cherche « data analyst » ou « data scientist ») et les fiches de formations.
  • 🏅 Trophées NSI : si tu suis la spécialité NSI, ce concours national de projets informatiques est une belle occasion de présenter un projet autour des données. Sinon, rien ne t'empêche de mener le même genre de projet de ton côté !

💡 Le conseil des pros Le meilleur moyen d'apprendre, c'est de travailler sur des données qui t'intéressent vraiment. Passionné de foot, de musique, de jeux vidéo ou de météo ? Trouve un jeu de données sur ce sujet, pose-toi une question, et cherche la réponse avec Python. C'est exactement ce que font les data analysts tous les jours !


📊 Le mot de la fin Les données sont partout, et ceux qui savent les faire parler sont de plus en plus recherchés. Que tu deviennes data analyst, data scientist ou que tu choisisses un tout autre métier, savoir lire des chiffres, repérer un graphique trompeur et écrire quelques lignes de Python te sera utile toute ta vie. Alors, quelle question vas-tu poser à tes premières données ?


Published

Category

Programmation

Tags

Stay in Touch