01 75 60 34 00 | conseil@ensae.fr | Prenez RDV |

Python intermédiaire

Prochaine session 3 et 4 déc. 2026 Session garantie
S'inscrire
Voir les autres sessions
Python intermédiaire

Objectifs pédagogiques

  • Acquérir les outils et techniques permettant d’effectuer des traitements sur les données, plus rapidement et plus efficacement
  • Connaître les principaux packages d’analyse statistique

Programme détaillé

Cette formation s’adresse à des stagiaires ayant déjà manipulé des données avec le langage Python, désireux d’approfondir leurs connaissances sur ses fonctionnalités.

Chaque chapitre de cette formation permettra aux participants de manipuler les librairies Python sur des cas concrets à partir de travaux pratiques.

Introduction 3h

  • Principales caractéristiques du langage Python
  • Présentation des objets Python de base

Pandas avancé 5h

  • Opérations d’agrégation et de filtrage sur un dataframe Pandas
  • Traitement des données manquantes
  • Recodage de variables
  • Tables multiples : concaténation, jointure
  • crosstab()
  • Itération d’un DataFrame
  • Famille apply et vectorisation : comment appliquer des transformations sur un dataframe ou une serie avec la méthode apply ?
  • datetime : comment manipuler les dates et les heures avec le module datetime ?
  • Techniques d’optimisation avec Pandas

JSON et API 2h30

  • Gestion des formats de données JSON
  • Accès à des données en ligne via une API web

Data visualisation avec matplotlib et seaborn 1h30

Public visé

Toute personne souhaitant se perfectionner en Python, notamment : statisticiens, chargés d’études, data analysts, data scientists…

Prérequis

Parmi nos formations au langage Python, cette formation est le niveau 2. Elle requiert une connaissance préalable de Python (maîtrise du contenu de la formation niveau 1 - Python initiation).

Un débutant ou un ancien utilisateur ayant peu de pratique s’orientera donc vers la formation Python Initiation. Si au contraire vous êtes déjà un utilisateur avancé de Python, vous serez peut-être intéressé(e) par nos formations Python Expert.

Approche pédagogique

Moyens pédagogiques
Exposé théorique de concepts Démonstration Applications pratiques sur ordinateur Échanges sur les pratiques et expériences des participants Suivi pédagogique individualisé Exercices, quiz, etc.
Méthodes pédagogiques
Méthode expositive Méthode démonstrative Méthode interrogative Méthode active
Satisfaction globale
★★★★★ ★★★★★
4,6/5

Calculés à partir de 121 avis recueillis depuis 10/04/2018, lors de 21 sessions de cette formation.

Contenu
★★★★★ ★★★★★ 4,5/5
Durée et rythme
★★★★★ ★★★★★ 4,2/5
Formateur
★★★★★ ★★★★★ 4,8/5
Supports et ressources
★★★★★ ★★★★★ 4,6/5

pandas 3.0 : ce qui change pour le code d'analyse de données

Publiée le 21 janvier 2026, la version 3.0 de pandas est la première version majeure depuis la 2.0 d’avril 2023. Elle modifie deux comportements que tout utilisateur rencontre : ce qui se passe quand on modifie une sélection, et le type des colonnes de texte. Une partie du code écrit avant 2026, y compris dans les réponses trouvées en ligne, ne produit donc plus le même résultat.

Copy-on-Write : la fin de l’affectation en chaîne

Jusqu’à la version 2, une sélection pouvait être une vue, qui partage la mémoire avec le tableau d’origine, ou une copie, selon des règles internes difficiles à prévoir. C’était la raison d’être du fameux avertissement SettingWithCopyWarning. Avec pandas 3.0, le mécanisme dit Copy-on-Write devient la règle unique : toute sélection se comporte comme une copie. L’affectation « en chaîne », qui enchaîne un filtre puis une affectation, ne modifie donc plus jamais le tableau d’origine :

import pandas as pd

df = pd.DataFrame({"region": ["Nord", "Sud", "Est"], "montant": [120.0, 80.0, 200.0]})

df[df["montant"] > 100]["montant"] = 0       # sans effet, avec un simple avertissement
df.loc[df["montant"] > 100, "montant"] = 0   # la bonne forme : une seule opération .loc

La première ligne ne provoque pas d’erreur : pandas émet un avertissement (ChainedAssignmentError) et le tableau reste inchangé. Les .copy() ajoutés par précaution pour faire taire l’ancien avertissement deviennent inutiles.

Le texte n’est plus de type object

Les colonnes de texte avaient jusqu’ici le type générique object, hérité de NumPy, capable de contenir n’importe quel objet Python. Elles reçoivent désormais un type dédié, str, qui s’appuie sur la bibliothèque PyArrow lorsqu’elle est installée. En pratique, df.dtypes affiche str, un test comme df["region"].dtype == object n’est plus vrai, et les opérations sur les chaînes sont plus rapides. Pour migrer un code existant, l’équipe de pandas conseille de passer d’abord par la version 2.3 et d’y faire disparaître tous les avertissements.

apply ou vectorisation

Une autre source de lenteur n’a pas changé avec la version 3.0 : appliquer une fonction ligne par ligne avec apply(..., axis=1) revient à exécuter une boucle Python, alors qu’une opération sur des colonnes entières est exécutée en code compilé.

ventes["ca"] = ventes.apply(lambda ligne: ligne["prix"] * ligne["quantite"], axis=1)   # boucle Python
ventes["ca"] = ventes["prix"] * ventes["quantite"]                                    # vectorisé

Sur un million de lignes, la seconde écriture est plusieurs centaines de fois plus rapide. apply reste utile quand un calcul ne s’exprime pas en opérations sur des colonnes, et c’est à ces cas qu’il vaut mieux le réserver.

Ces notions prolongent les bases vues en Python initiation ; la formation Python expert — Machine learning engineer s’appuie à son tour sur elles.