Files
training.python.datascience/documentation/00-new-course-plan.md
2025-07-04 19:58:11 +02:00

7.2 KiB

Introduction à Pandas

Concepts de base

  • Types de base : Series
  • Types de base : DataFrame
  • Types de base : Index
  • Types alternatifs : MultiIndex
  • Types alternatifs : DatetimeIndex

Jupyter

  • Types de cellules, Kernel

  • Raccourcis clavier par défaut

  • Qu'est-ce que Jupyter ?

  • Avantages de Jupyter pour l'analyse de données

  • Installer Jupyter et lancer un serveur Jupyter

  • Types de cellules, Kernel

  • Raccourcis clavier par défaut

Création de données avec Python, Numpy et Pandas

  • Tableaux Numpy
  • Création et manipulation de tableaux (1D et 2D)
  • Fonctions pour générer des séquences
    • numpy.arange() et numpy.linspace()
    • pandas.date_range()
    • numpy.random.default_rng()
    • numpy.empty, ones, zeros, etc.
    • Numpy : "Array creation routines"

Manipuler une série

  • Quelles sont les propriétés d'une série ?
  • Quand obtient-on une série ?
  • Types de données (dtype)
  • Créer une série
    • Avec index par défaut
    • Avec un index
    • Préciser le dtype
  • Extraire des informations d'une série (valeurs, index)
  • Opérations sur séries (arithmétiques, comparaisons)
  • Modifier une valeur d'une série
  • Valeurs vides et filtrage (isna, notna, dropna, fillna, count)
  • Méthodes des séries booléennes (any, all)
  • Récupérer les valeurs distinctes (unique) et retirer des doublons
  • Appliquer une fonction aux valeurs d'une série
  • Filtrer une série (slice, indexes, conditions, filtres str, filtres dt)
  • Concaténation de séries

Manipuler un dataframe

  • Quelles sont les propriétés d'un DataFrame ?

  • Notions et nomenclature des DataFrame (index, colonnes)

  • Quand obtient-on un DataFrame ?

  • Types de données (dtypes)

  • Créer un DataFrame

    • Avec des index par défaut (colonnes et lignes)
    • Avec des index (colonnes et lignes)
  • Extraire des informations d'un DataFrame

    • Taille d'un DataFrame
    • Index des lignes et colonnes
    • Cellule à une position (at)
    • Une ligne de données (loc, iloc)
    • Une colonne de données (df[])
    • Plusieurs lignes de données (loc, iloc)
    • Plusieurs colonnes de données (df[])
    • Lignes et colonnes (loc[,], iloc[,])
    • Filtrage conditionnel (loc[])
    • Déduplication des lignes (drop_duplicates)
    • Tri des lignes
    • Récapitulatif
  • Valeurs vides et filtrage (isna, notna, dropna, fillna)

    • Détecter les valeurs vides (isna, notna)
    • Méthodes des séries booléennes (any, all, sum)
    • Supprimer les lignes avec des valeurs vides (dropna)
    • Remplacer les valeurs vides (fillna)
  • Modifier des informations dans un DataFrame

    • Changer toute une colonne ou ligne
    • Créer une ligne ou une colonne (+ insertion)
    • Changer une cellule
    • Retirer une ou plusieurs lignes et colonnes
    • Appliquer une fonction
  • Comme du SQL, pour des DataFrame

    • Ajouter un DataFrame sous ou à côté d'un autre
    • Effectuer des jointures (left, right, inner, outer)
    • Groupements (group_by)
    • Fenêtres
  • Configurer l'affichage d'un DataFrame (config ou to_string)

Utiliser des index

  • Quelles sont les propriétés d'un index ?
  • Extraire des valeurs d'un index (position, slicing)
  • Connaître la position d'une valeur dans l'index (get_loc)
  • Définir un index à un DataFrame ou une série
  • Réinitialiser l'index d'un DataFrame ou une série
  • Trier par un index (MultiIndex)
  • Comprendre les MultiIndex
  • Les DatetimeIndex et la fonction date_range

Calculer avec des séries et des dataframe

  • Appliquer des fonctions d'agrégation (statistiques etc.)
    • Sur une série
    • Sur un DataFrame (describe())
    • Multiples résultats simultanés (df.agg())
    • Fonctions d'agrégation personnalisées
  • Conversion des types (to_datetime, .astype(), etc.)
  • Opérations et comparaisons sur les séries et dataframes

Chargement de DataFrame depuis fichiers

  • Protocoles pris en charge (https, file)
  • Chargement de fichiers CSV (inférence, dates, en-têtes, encodage)
  • Chargement de fichiers Excel (moteurs de chargement : xlrd, openpyxl etc.)
  • Chargement depuis document JSON (liste de dictionnaires etc.)
  • Prise en charge des archives (zip, gz, bz2, xz)
  • Chargement depuis SQLite3 (ou SQLAlchemy)

Enregistrement de DataFrame vers des fichiers

  • Formats de sauvegarde classiques (Excel, CSV)
  • Formats SQL (connexion SQLAlchemy ou SQLite3)
  • Format Pickle

Export de DataFrame vers des formats divers

  • Vers un dictionnaire
  • Vers une chaîne de caractères
  • Vers un document HTML

Rendu de graphiques avec Pandas et Matplotlib

  • Matplotlib, qu'est-ce que c'est ?
  • Comment ça marche ?

Diagrammes avec Pandas

  • Exemples simples (création de diagrammes matplotlib)
    • Générer un diagramme en barres
    • Générer un diagramme en lignes
    • Générer un diagramme en secteurs
    • Générer un nuage de points
    • Autres diagrammes
  • Personnaliser les diagrammes
    • Arguments de la méthode .plot() (tracé)

Matplotlib plus complet

  • Créer un simple tracé et dessiner dedans
    • Avec un DataFrame
    • Avec des données brutes (Numpy ou Python)
    • Dessiner par-dessus un tracé (hold state)
  • Objets de type Figure et sous-tracés (Axes)
    • Layout multi-tracés (subplots)
    • Manipuler un objet de tracé Axes
  • Afficher les diagrammes (fenêtres)
  • Personnaliser les couleurs
    • Nommage des couleurs
    • Cartes de couleur (Colormap)
      • Objets colormap fournis par Matplotlib
      • Objets colormap personnalisés (classes Colormap)
  • Personnaliser les tracés
    • Largeurs de traits, contours de zones
    • Couleurs de fond
    • Couleurs de tracés
    • Espacements et mise en page
    • Polices de texte
    • Génération de légendes
    • Libellés (X, Y, titre, Axes, valeurs de barres/secteurs)
    • Dessiner par-dessus un tracé (lignes, texte, cercles)

Rendu de diagrammes statistiques avec Seaborn

  • Seaborn, c'est quoi ?
  • Créer un simple tracé pour une matrice de corrélation (heatmap)

Rendu de diagrammes web avec Plotly et Dash

  • Plotly, c'est quoi ?
  • Plotly Express, c'est quoi ?
  • Exemples simples
    • Générer un diagramme en barres
    • Générer un diagramme en lignes
    • Générer un diagramme en secteurs
    • Générer un nuage de points
    • Générer un diagramme de Sankey
  • Dash, c'est quoi ?
  • Générer un tableau de bord simple avec Dash
    • Construction avec des composants HTML
    • Composant dash_table.DashTable
    • Composants DCC (Dash Core Components)
    • Créer un dashboard via un document HTML (dash-htmlayout)
  • Interactivité dans un tableau de bord Dash
    • Callbacks
    • Entrées
    • Sorties
    • Propriétés des composants
  • Styles CSS et scripts JS dans un document Dash
    • Répertoire de recherche des fichiers et configuration
  • dash-htmlayout pour créer son layout de tableau de bord sans Python

Concurrence et parallélisme dans le traitement de données

  • Optimisation des performances via la parallélisation/threading
  • Outils Python d'exécution concurrente/parallèle
  • Celery (Linux seulement)
    • Configuration
    • Installation d'un broker (Redis)
    • Envoi d'une tâche Celery
    • Démarrage d'une tâche et service Worker
    • Tâches périodiques et service Beat
  • Spark + pySpark (Linux seulement)

Outils et bibliothèques de performance Python

  • Numba
  • Nuitka
  • PyPy
  • Mesurer le temps d'exécution de votre code
  • Concept : Profiling