Pandas : comment appliquer une mise en forme conditionnelle aux cellules



Vous pouvez utiliser la fonction df.style.applymap() pour appliquer une mise en forme conditionnelle aux cellules d’un DataFrame pandas.

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : appliquer une mise en forme conditionnelle aux cellules dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [4, 5, 5, 4, 9, 12, 11, 8],
                   'rebounds': [3, 9, 12, 4, 4, 9, 8, 2]})

#view DataFrame
print(df)

   points  assists  rebounds
0      18        4         3
1      22        5         9
2      19        5        12
3      14        4         4
4      14        9         4
5      11       12         9
6      20       11         8
7      28        8         2

Nous pouvons utiliser le code suivant pour appliquer un arrière-plan vert clair à chaque cellule du DataFrame qui a une valeur inférieure à 10 :

#define function for conditional formatting
def cond_formatting(x):
    if x < 10:
        return 'background-color: lightgreen'
    else:
        return None
    
#display DataFrame with conditional formatting applied    
df.style.applymap(cond_formatting)

mise en forme conditionnelle des pandas

Notez que chaque cellule du DataFrame ayant une valeur inférieure à 10 a désormais un arrière-plan vert clair.

Remarque : Si la mise en forme conditionnelle ne fonctionne pas dans un notebook Jupyter, assurez-vous d’abord d’exécuter la commande %pip install Jinja2 .

Nous pouvons également utiliser les arguments color et font-weight pour appliquer une mise en forme conditionnelle plus complexe.

L’exemple suivant montre comment procéder :

#define function for conditional formatting
def cond_formatting(x):
    if x < 10:
        return 'background-color: lightgreen; color: red; font-weight: bold'
    elif x < 15:
        return 'background-color: yellow'
    else:
        return None
    
#display DataFrame with conditional formatting applied    
df.style.applymap(cond_formatting)

formatage conditionnel pandas avec plusieurs conditions

Voici comment la fonction de formatage conditionnel a fonctionné dans cet exemple :

  • Pour les valeurs inférieures à 10 , utilisez un fond vert clair avec une police rouge en gras
  • Pour les valeurs ≥ 10 mais inférieures à 15 , utilisez un fond jaune
  • Pour les valeurs supérieures à 15 , n’utilisez aucune mise en forme conditionnelle

N’hésitez pas à utiliser autant de fonctions if , elif et else que vous le souhaitez pour appliquer autant de règles de mise en forme conditionnelle aux cellules du DataFrame que vous le souhaitez.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment ajouter un titre de table au Pandas DataFrame
Comment afficher toutes les lignes d’un DataFrame Pandas
Comment afficher toutes les colonnes d’un DataFrame Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *