Ce livre de la collection vBook se compose d'un livre de référence sur la Data Science avec le langage Python, alliant théorie et pratique, pour apprendre à analyser des données et d’un approfondissement sous forme de vidéo qui présente NumPy et Pandas, deux bibliothèques dédiées à la Data Science et à la visualisation de données.
Livre Python pour la Data Science - Analysez vos données avec...
Ce livre de la collection vBook se compose d'un livre de référence sur la Data Science avec le langage Python, alliant théorie et pratique, pour apprendre à analyser des données et d’un approfondissement sous forme de vidéo qui présente NumPy et Pandas, deux bibliothèques dédiées à la Data Science et à la visualisation de données.
Livre Python pour la Data Science - Analysez vos données avec NumPy, Pandas, Matplotlib et Seaborn
Ce livre sur la Data Science avec le langage Python, alliant théorie et pratique, s’adresse aussi bien aux étudiants et professionnels (ingénieurs, chercheurs, enseignants, data scientists), qu’aux informaticiens souhaitant apprendre à analyser des données avec Python.
La première partie du livre vise à introduire le langage Python et son utilisation dans le domaine de l’analyse de données. Le lecteur y découvre la mise en place de l’environnement de travail ainsi que des rappels sur le langage Python.
Dans une deuxième partie, le lecteur apprend à manipuler efficacement ses données grâce aux librairies NumPy et Pandas. Chaque notion est introduite théoriquement puis illustrée par un exemple concret permettant de comprendre son application. Il apprend à importer ses données sous Python et à utiliser les fonctions, méthodes et attributs fournis pour les explorer et les manipuler afin d’en faire ressortir des informations et tendances.
Dans une troisième partie, le lecteur apprend à visualiser ses données avec les librairies Matplotlib et Seaborn, lui permettant de comprendre l’architecture et le fonctionnement de la création de figures avec Python, ainsi que les types de graphiques à utiliser selon le type de variables à représenter.
Enfin, dans le dernier chapitre, l’auteur propose un exercice complet avec sa correction permettant de mettre en pratique les notions étudiées. Il permet au lecteur d’écrire le code permettant de répondre aux questions de l’exercice.
Pour chaque chapitre, un fichier contenant le code source utilisé, appelé notebook, est disponible en téléchargement sur le site www.editions-eni.fr. Ce notebook permet au lecteur de tester le code, de le modifier et d’y tester ses propres lignes de code. De plus, deux jeux de données réels sont disponibles en téléchargement et utilisés dans ce livre pour illustrer les propos de l’auteur.
Vidéo Data Science et visualisation de données
L’arrivée du Big Data et la multiplicité des sources de données font que les besoins en matière d’analyse de données deviennent de plus en plus importants.
L’objectif de cette vidéo est de vous montrer comment utiliser le langage Python dans le cadre de la Data Science pour être en mesure d’analyser de gros volumes de données. Nous présenterons NumPy et Pandas, deux bibliothèques dédiées à la Data Science et travaillerons sur la préparation et la visualisation de données.
1. Introduction : pourquoi utiliser Python pour la Data Science ?
2. Introduction à IPython et Jupyter
2.1 Introduction à IPython
2.2 Le projet Jupyter
3. Qu'est-ce qu'Anaconda ?
4. Installation d'Anaconda
4.1 Installation sur Windows
4.2 Installation sur MacOS
4.3 Installation sur Linux
5. Découverte d'Anaconda Navigator
5.1 Applications disponibles dans Anaconda Navigator
5.2 Gestion des packages et environnements
6. Prise en main de Jupyter Notebook
6.1 Tableau de bord de Jupyter Notebook
6.2 Premiers pas avec les notebooks
6.3 Comprendre l'interface des notebooks
6.3.1 La barre de menus
6.3.2 La barre d'outils
6.3.3 Les cellules
6.3.4 Les modes Commande et Edition et les raccourcis-clavier
6.3.5 Les bases du langage Markdown pour écrire dans un notebook
6.3.6 Partager son notebook
7. Les packages Python essentiels pour la Data Science
7.1 NumPy
7.2 Pandas
7.3 Matplotlib
7.4 Seaborn
Rappels sur le langage Python
1. Introduction sur le langage de programmation Python
2. Les variables
3. Les différents types de données (int, float, bool, str)
3.1 Les nombres réels et entiers
3.2 Les booléens
3.3 Les chaînes de caractères
4. Les structures de données basiques (listes, tuples et dictionnaires)
4.1 Les listes
4.1.1 Créer une liste
4.1.2 Accéder aux éléments d'une liste
4.1.3 Ajouter et supprimer des éléments à une liste
4.2 Les tuples
4.3 Les dictionnaires
4.3.1 Introduction aux dictionnaires
4.3.2 Ajouter, modifier et supprimer des éléments d'un dictionnaire
4.3.3 Parcourir un dictionnaire
5. Les opérateurs arithmétiques, relationnels et logiques
5.1 Les opérateurs arithmétiques
5.2 Les opérateurs relationnels et logiques
5.2.1 Les opérateurs relationnels
5.2.2 Les opérateurs logiques
6. Vocabulaire en Python : fonctions, méthodes, attributs, modules et librairies (packages)
6.1 Fonctions
6.2 Méthodes
6.3 Attributs
6.4 Modules
6.5 Librairies (packages)
7. Instructions de condition if et boucles for
7.1 Instruction de condition if
7.2 Boucle for
Maîtriser la librairie NumPy
1. Introduction à NumPy
2. Les tableaux NumPy
2.1 Créer un ndarray
2.1.1 Créer un ndarray à partir de listes
2.1.2 Créer un ndarray grâce à des fonctions NumPy
2.1.3 Créer un ndarray à partir d'un fichier
2.2 Indexation
2.2.1 Indexation simple
2.2.2 Indexation booléenne
2.2.3 Fancy indexing
2.3 Accéder aux éléments par tranche (slicing)
2.3.1 Slicing sur un tableau NumPy à 1 dimension
2.3.2 Slicing sur un tableau NumPy à 2 dimensions
2.4 Notion de vue et copie
3. Les opérations mathématiques avec NumPy
3.1 Les opérations arithmétiques
3.2 Les fonctions d'agrégations
4. Inspecter un tableau grâce aux attributs de NumPy
5. Manipuler des tableaux NumPy
5.1 Ajouter et supprimer des éléments dans un tableau
5.1.1 Ajouter des éléments dans un tableau
5.1.2 Supprimer des éléments d'un tableau
5.2 Diviser un tableau NumPy (split, hsplit et vsplit)
5.2.1 Sur un tableau à une dimension
5.2.2 Sur un tableau à deux dimensions
5.3 Concaténer/combiner des tableaux
5.3.1 La fonction concatenate()
5.3.2 Les fonctions vstack() et hstack()
6. Introduction aux matrices avec NumPy
Maîtriser la librairie Pandas
1. Introduction
1.1 Introduction à la librairie Pandas
1.2 Introduction au jeu de données utilisé pour les exemples
2. Lire et écrire des fichiers avec Pandas
2.1 Lecture de fichiers texte (CSV ou TXT)
2.1.1 Lecture basique d'un fichier
2.1.2 Gestion de l'en-tête
2.1.3 Gestion des index
2.1.4 Création d'un tableau à une dimension à partir du fichier
2.1.5 Filtrage des colonnes lors de la lecture du fichier
2.1.6 Les types des différentes colonnes
2.1.7 Gestion des dates lors de la lecture du fichier
2.2 Lecture de fichiers Excel
2.3 Importation des données à partir d'une base de données
2.4 Lecture de fichiers au format JSON
2.5 Écriture de fichiers ou exportation de données
3. Structure de données Pandas : les Series (Séries)
3.1 Introduction
3.2 Créer des séries
3.2.1 À partir de valeurs aléatoires
3.2.2 À partir d'une liste Python
3.2.3 À partir d'un tableau NumPy (ndarray)
3.2.4 À partir d'un fichier texte
3.3 Choisir l'index d'une série
3.4 Accéder aux valeurs d'une série
3.4.1 Indexing via la position des valeurs
3.4.2 Indexing via l'étiquette des valeurs
3.4.3 Les indexeurs loc et iloc
3.4.4 Indexing via une expression booléenne
3.4.5 Slicing : découpage de valeurs successives
3.5 Les attributs et les méthodes des objets de classe Series
3.5.1 Les attributs des objets de classe Series
3.5.2 Les méthodes des objets de classe Series
3.6 Ajouter, supprimer et modifier les valeurs d'une série
3.6.1 Ajouter des valeurs à une série
3.6.2 Supprimer une valeur d'une série
3.6.3 Modifier les valeurs d'une série
4. Structure de données Pandas : les objets de type DataFrame
4.1 Introduction
4.2 Indexing : sélectionner des valeurs d'un dataframe
4.2.1 Indexing et slicing avec l'attribut loc
4.2.2 Indexing et slicing avec l'attribut iloc
4.2.3 Indexing avec une expression booléenne
4.3 Ajout, suppression et modification sur un dataframe
4.3.1 Ajouter une ou plusieurs colonnes à un dataframe
4.3.2 Ajouter une ligne à un dataframe
4.3.3 Supprimer des lignes ou colonnes d'un dataframe
4.3.4 Modifier des valeurs dans un dataframe
4.4 Nettoyage et préparation des données avec Pandas
4.4.1 Gestion des données manquantes
4.4.2 Gestion des données dupliquées
4.5 Exploration préliminaire d'un dataframe
4.5.1 Principaux attributs
4.5.2 Définition des termes variable, variable quantitative et variable qualitative et découverte de la méthode describe()
4.5.3 Méthodes de tri d'un dataframe
5. Structure de données Pandas : les panels
6. Manipulation avancée des données avec Pandas
6.1 Les opérations groupby
6.1.1 groupby sur une colonne
6.1.2 groupby sur plusieurs colonnes
6.1.3 Appliquer plusieurs fonctions avec la méthode groupby et la méthode aggregate
6.2 Appliquer une fonction à un dataframe avec la méthode apply
6.3 Remodeler/réorganiser des dataframes
6.3.1 Pivotage : la méthode pivot_table
6.3.2 Les méthodes stack (empiler) et unstack (désempiler)
Maîtriser la librairie Matplotlib
1. Introduction
2. Le fonctionnement de Matplotlib
2.1 Architecture de Matplotlib
2.2 Organisation des figures avec Matplotlib
3. La création d'un premier graphique simple
3.1 Préparer son jeu de données
3.2 Créer un nuage de points
3.3 Ajouter un titre principal et des labels aux axes du nuage de points
3.4 Enregistrer son graphique
3.5 Changer la taille de la fenêtre graphique et la résolution de son graphique
3.6 Tracer plusieurs courbes sur un même graphique (sur un même objet axes)
3.7 Ajouter une légende à son graphique
3.8 Annoter son graphique avec du texte
3.9 Combiner plusieurs graphiques grâce à subplot et subplots
3.9.1 Tracer des sous-graphiques (subplot) sur une ligne ou une colonne
3.9.2 Tracer des sous-graphiques sur plusieurs lignes et plusieurs colonnes
3.9.3 Incruster un objet axes dans un autre
4. Les différents types de graphes
4.1 Types de graphiques selon les types de variables (quantitatives et qualitatives)
4.2 Scatterplot
4.3 Graphique à barres (bargraph)
4.3.1 Graphique à barres simple
4.3.2 Graphique à barres groupées
4.3.3 Graphique à barres empilées
4.4 Boxplots
Maîtriser la librairie Seaborn
1. Introduction
2. L'esthétique des figures avec Seaborn (Aesthetic)
2.1 Paramétrer les styles Seaborn (thèmes)
2.2 Supprimer les axes
2.3 Paramétrer les contextes avec Seaborn
2.4 Les palettes de couleur avec Seaborn
2.4.1 Choisir une palette de couleurs existante
2.4.2 Créer sa propre palette de couleurs
3. Les différents types de graphiques
3.1 Préparation du jeu de données
3.2 Nuage de points (scatterplot)
3.3 Graphiques de régression
3.4 Pointplot
3.5 Nuage de points avec une variable qualitative : stripplot
3.6 Boxplots
3.7 Graphique à barres : countplot
3.8 Histogrammes
3.9 Jointplot
3.10 Pairplot
3.11 Heatmap
4. Les graphiques multi-grilles
4.1 FacetGrid
4.2 PairGrid
4.3 JointGrid
5. Conclusion
Exercice complet sur jeu de données réel
1. Introduction
2. Présentation du jeu de données
3. Énoncé de l'exercice
3.1 Lire le fichier
3.2 Afficher les dimensions du dataframe
3.3 Compter les films et les séries
3.4 Générer le résumé statistique du dataframe
3.5 Compter les valeurs manquantes
3.6 Explorer les valeurs manquantes
3.6.1 Sur la colonne des directeurs de production
3.6.2 Sur la colonne des acteurs
3.7 Supprimer les lignes dupliquées
3.8 Compter les films/séries produits par les États-Unis et par la France
3.9 Afficher le contenu le plus vieux disponible sur Netflix
3.10 Afficher le film avec la durée la plus longue sur Netflix
3.10.1 Nouvelle notion : les méthodes str
3.10.2 Énoncé
3.11 Étudier les catégories avec le plus de contenu
3.12 Afficher les directeurs qui ont produit le plus de films/séries disponibles sur Netflix
3.13 Voir si Jan Suter travaille souvent avec les mêmes acteurs
3.14 Représenter les dix pays qui ont produit le plus de contenus disponibles sur Netflix, avec le nombre de contenus par pays
3.15 Tracer un graphe à barres du nombre de films/séries par classement de contenu (rating)
3.16 Afficher l'évolution du nombre de films/séries disponibles sur Netflix au cours du temps
3.16.1 Notions supplémentaires sur les dates
3.16.2 Énoncé
3.17 Afficher la distribution de la durée des films disponibles sur Netflix
3.18 Tracer un graphique représentant le nombre de séries par modalité de nombre de saisons
Index
Amandine VELT
Diplômée du master Bioinformatique Modélisation et Statistique de l’Université de Rouen Normandie, Amandine VELT est ingénieure en Bioinformatique à l’INRAE (Institut National de Recherche pour l’Agriculture, l’Alimentation et l’Environnement). Passionnée par la programmation, le traitement de données de grandes volumétries et l’enseignement, elle est aussi formatrice indépendante en Data Science avec les langages de programmation Python et R. Ses deux formations en ligne dans le domaine regroupent environ 3000 participants. Ce livre, qu’elle a voulu pratique et concret, est dédié aux lecteurs désireux d’apprendre à analyser des données ave le langage Python.
Après un diplôme d'ingénieur en Informatique obtenu à l'université Mouloud Mammeri à Tizi-Ouzou en Algérie puis un Master en Intelligence Artificielle - Systèmes multi-agents obtenu à l'université Paris 5 (René Descartes), Madjid KHICHANE a soutenu son PhD en Intelligence Artificielle en collaboration entre l'Université Claude Bernard Lyon 1 et IBM. Cette thèse doctorale a donné naissance à des innovations algorithmiques dans le domaine de l'apprentissage par renforcement qui sont aujourd’hui publiées dans des conférences internationales de premier niveau.