226 lines
7.2 KiB
Markdown
226 lines
7.2 KiB
Markdown
# 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
|
||
|