🐼 Pandas
Pandas est une bibliothèque Python conçue pour charger, explorer, transformer et analyser des données tabulaires (comme des fichiers Excel ou CSV) en quelques lignes de code. Elle est indispensable dès qu'on doit manipuler des centaines ou des milliers de données.
- Explorer
- Filtrer et trier
- Sélectionner
- Parcourir
- Nettoyer
- Transformer
- Statistiques
- Exporter
- Visualiser
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Charger un CSV | df = pd.read_csv('fichier.csv') | Retourne un DataFrame |
| Aperçu des données | df_apercu = df.head(5) | Retourne les 5 premières lignes |
| Dimensions | dimensions = df.shape | Retourne (244, 7) : lignes, colonnes |
| Nombre de lignes | n = len(df) | Retourne le nombre de lignes |
| Noms des colonnes | colonnes = df.columns.tolist() | Retourne une liste des noms de colonnes |
| Types et valeurs manquantes | df.info() | Affiche directement dans la console |
| Statistiques descriptives | df_stats = df.describe() | Retourne un DataFrame (colonnes numériques) |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Filtre simple (nombre) | df_filtrer = df[df["tip"] > 5] | Pourboire supérieur à 5 $ |
| Filtre simple (texte) | df_filtrer = df[df["time"] == "Dinner"] | Égalité exacte sur une colonne texte |
| Filtre texte (.str.) | df_filtrer = df[df["day"].str.contains("Th")] | Colonne contient une sous-chaîne |
| Filtre ET | df_filtrer = df[(df["day"] == "Sun") & (df["time"] == "Dinner")] | Les deux conditions vraies |
| Filtre OU | df_filtrer = df[(df["size"] == 1) | (df["size"] == 2)] | Au moins une condition vraie |
| Filtre liste | df_filtrer = df[df["day"].isin(["Thur", "Fri"])] | Valeur parmi une liste |
| Trier croissant | df_trier = df.sort_values(by="tip") | Du plus petit au plus grand |
| Trier décroissant | df_trier = df.sort_values(by="tip", ascending=False) | Du plus grand au plus petit |
| Trier multi-colonnes | df_trier = df.sort_values(by=["day", "tip"]) | Tri sur plusieurs colonnes |
| Chaîner filtre + tri | df_resultat = df[df["day"] == "Sun"].sort_values(by="tip") | Filtrer puis trier en une ligne |
| Opération | Syntaxe | Type retourné |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Plusieurs colonnes | df_selection = df[["total_bill", "tip"]] | DataFrame |
| Une colonne (Series) | serie = df["tip"] | Series |
| Une colonne (DataFrame) | df_selection = df[["tip"]] | DataFrame |
| Lignes par position | df_selection = df.iloc[3:10] | DataFrame |
| Ligne précise (Series) | ligne = df.iloc[3] | Series |
| Ligne précise (DataFrame) | df_selection = df.iloc[[3]] | DataFrame |
| Cellule par position | valeur = df.iat[3, 0] | valeur scalaire |
| Cellule par étiquette | valeur = df.at[3, "tip"] | valeur scalaire |
| Cellule avec loc | valeur = df.loc["mean", "tip"] | valeur scalaire |
| Colonne en tableau NumPy | tableau = df["tip"].values | ndarray NumPy |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Parcourir ligne par ligne | for index, row in df.iterrows(): | index = numéro de ligne, row = Series |
| Accéder à une valeur | row["Console"] | Valeur de la colonne "Console" pour la ligne courante |
| Parcourir une colonne | for val in df["Console"]: | Itère sur les valeurs d'une Series |
| Convertir en liste | df["Console"].tolist() | Retourne une liste Python ordinaire |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Détecter les NaN | df.isnull().sum() | Nombre de NaN par colonne |
| Supprimer les NaN (tout) | df_propre = df.dropna() | Retire toute ligne avec au moins un NaN |
| Supprimer les NaN (colonne) | df_propre = df.dropna(subset=["col"]) | Retire seulement si cette colonne est vide |
| Supprimer les doublons | df_propre = df.drop_duplicates() | Retire les lignes identiques |
| Remplacer les NaN (fixe) | df["col"] = df["col"].fillna("valeur") | Remplace NaN par une valeur fixe |
| Remplacer les NaN (moyenne) | df["col"] = df["col"].fillna(df["col"].mean()) | Remplace NaN par la moyenne (numérique) |
| Convertir le type | df["col"] = df["col"].astype(float) | Change le type de la colonne |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Créer une colonne (calcul) | df["col"] = df["a"] + df["b"] | Nouvelle colonne par calcul |
| Créer une colonne (comparaison) | df["col"] = df["a"] > 5 | Nouvelle colonne booléenne |
| Créer une colonne (liste) | df["col"] = df["a"].isin([...]) | Vrai si la valeur est dans la liste |
| Convertir un type | df["col"] = df["col"].astype(float) | Change le type de la colonne |
| Mapper un dictionnaire | df["col"] = df["a"].map(dict) | Remplace les valeurs via un dictionnaire |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Moyenne | moyenne = df["col"].mean() | Moyenne des valeurs |
| Somme | somme = df["col"].sum() | Somme des valeurs |
| Minimum / Maximum | minimum = df["col"].min() | Valeur minimale ou maximale |
| Médiane | mediane = df["col"].median() | Valeur médiane |
| Nombre de valeurs | nb_valeurs = df["col"].count() | Valeurs non-nulles |
| Fréquences | frequences = df["col"].value_counts() | Fréquence de chaque valeur |
| Valeurs uniques | uniques = df["col"].unique() | Liste des valeurs distinctes |
| Nombre de valeurs uniques | nb_uniques = df["col"].nunique() | Nombre de valeurs distinctes |
| Grouper + statistique | df_groupe = df.groupby("col")["val"].mean() | Statistique par groupe |
| Grouper + plusieurs stats | df_groupe = df.groupby("col")["val"].agg([...]) | Plusieurs stats par groupe |
| Table de pivot | df_pivot = df.pivot_table(values=..., index=..., columns=...) | Tableau croisé de statistiques |
| Opération | Syntaxe | Description |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Exporter en CSV | df.to_csv("fichier.csv", index=False) | Fichier CSV sans colonne d'index |
| Graphique | Syntaxe | Usage |
|---|---|---|
| Importer Pandas | import pandas as pd | Convention universelle |
| Importer Matplotlib | import matplotlib.pyplot as plt | Convention universelle |
| Histogramme | df["col"].hist(bins=20) | Distribution d'une colonne numérique |
| Boîte à moustaches | df.boxplot(column="col", by="groupe") | Distribution par groupe |
| Nuage de points | plt.scatter(x=df["x"], y=df["y"]) | Relation entre deux variables |
| Courbes groupées | df.pivot_table(...).plot() | Tendances par groupe |
| Afficher | plt.show() | Afficher le graphique |
Documentation complète : https://pandas.pydata.org/docs/