L’indexation des DataFrames dans Pandas Python permet un accès efficace et direct à des données spécifiques au sein d’un DataFrame. L’utilisation d’un index de DataFrame Pandas permet de sélectionner des lignes et des colonnes spécifiques, ce qui peut faciliter considérablement l’analyse des données.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • Certificat SSL et protection DDoS
  • Sauvegarde et restauration des données
  • Assistance 24/7 et conseiller personnel

Que se passe-t-il lors de l’indexation ?

L’indexation d’un Pandas DataFrame a pour objectif de faciliter la sélection d’éléments spécifiques du DataFrame. On peut ainsi sélectionner des lignes et des colonnes en fonction de leurs positions ou de leurs étiquettes. Les index peuvent aider à trouver et à traiter les données plus rapidement en fournissant une sorte de « système d’adresses » pour la structure des données.

Syntaxe de Pandas DataFrame.index

Vous pouvez voir les valeurs de l’index d’un Pandas DataFrame avec la propriété index. La syntaxe est la suivante :

DataFrame.index
python

Syntaxe d’indexation des DataFrames

Il existe plusieurs façons d’indexer les Pandas DataFrames. La syntaxe d’indexation varie en fonction de l’opération souhaitée.

Indexation avec des labels (noms de colonnes)

Les Pandas DataFrames peuvent utiliser des noms de colonnes pour l’indexation. Pour cela, nous allons d’abord créer un exemple de DataFrame :

import pandas as pd
# Création d'un DataFrame d'exemple
données = {
    'Nom': ['Alice', 'Bob', 'Charlie'],
    'Âge': [25, 30, 35],
    'Ville': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(données)
print(df)
python

Le DataFrame se présente comme suit :

Nom  Âge     Ville
0    Alice   25     New York
1      Bob   30  Los Angeles
2  Charlie   35      Chicago

Si vous souhaitez accéder à toutes les valeurs d’une colonne spécifique, vous pouvez utiliser son nom en combinaison avec l’opérateur []. Il suffit de spécifier le nom de la colonne dans l’opérateur d’indexation sous la forme d’une chaîne (string) Python :

# Accès à la colonne « Âge »
print(df['Âge'])
python

Vous obtenez comme résultat les différentes valeurs d’âge :

0    25
1    30
2    35
Name: Âge, dtype: int64

Si vous vous intéressez non pas à une, mais à plusieurs colonnes, vous pouvez simplement spécifier leurs noms, séparés par des virgules, dans l’opérateur d’indexation.

Indexation avec loc[] (nom de ligne)

Si vous souhaitez accéder à une ligne spécifique de votre DataFrame, vous avez besoin de l’indexeur Pandas loc[]. Vous passez alors soit le nom de la ligne, soit le numéro de la ligne. Dans l’exemple de code suivant, nous considérons le même DataFrame que précédemment ; nous souhaitons extraire la première ligne contenant les valeurs pour « Alice » :

print(df.loc[0])
python

Comme prévu, les valeurs correspondant à « Alice » sont visibles dans le résultat :

Nom         Alice
Âge            25
Ville    New York
Name: 0, dtype: object

Indexation avec iloc[] (numéros de lignes et de colonnes)

Une autre façon d’accéder à des éléments spécifiques de votre DataFrame est d’utiliser les numéros de ligne et de colonne. Pour travailler avec l’index numérique du Pandas DataFrame, vous avez besoin de la propriété DataFrame iloc[].

# Accès à la première ligne
print(df.iloc[0])
# Accès à la valeur dans la première ligne et la deuxième colonne
print(df.iloc[0, 1])
python

Les résultats de l’utilisation de iloc[] ressemblent à ceci et renvoient les valeurs attendues :

Nom         Alice
Âge            25
Ville    New York
Name: 0, dtype: object

Indexer des valeurs individuelles

Si vous n’êtes intéressé que par une valeur spécifique de votre DataFrame, l’indexeur at est un moyen efficace d’extraire cette valeur. Définissez simplement la ligne et la colonne dans lesquelles la valeur doit être trouvée, avec leur nom. Ainsi, si le lieu de résidence de Bob est intéressant, nous avons besoin de la colonne « Ville » et de la première ligne :

print(df.at(1, 'Ville'))
python

Comme demandé, la sortie est la ville de résidence de Bob, soit « Los Angeles ».

Vous pouvez également utiliser l’indexeur iat, qui fonctionne de la même manière que at, mais qui attend la position au lieu du nom. Le même résultat que dans l’exemple de code précédent est obtenu avec l’utilisation de iat :

print(df.iat[1, 2])
python

Indexation booléenne

Il est possible d’indexer des sous-ensembles d’un DataFrame en se basant sur une condition particulière. Dans ce cas, on parle d’indexation booléenne. La condition à vérifier doit être évaluée à True ou à False et est placée directement dans l’opérateur d’indexation. Pour n’extraire que les lignes dans lesquelles la personne est âgée de plus de 30 ans, on peut procéder comme suit :

# Sélection des lignes où l'âge est supérieur à 30
print(df[df['Âge'] > 30])
python

La condition ci-dessus ne s’applique qu’à « Charlie », âgé de 35 ans. La sortie est donc la suivante :

Nom  Âge    Ville
2  Charlie   35  Chicago

L’indexation est un outil fondamental en Pandas qui permet d’accéder efficacement aux données et d’extraire des sous-ensembles pertinents pour l’analyse.

Note

Notez que dans l’indexation booléenne, vous pouvez utiliser tous les opérateurs booléens de comparaison qui évaluent soit vers True soit vers False. Pour en savoir plus sur les différents opérateurs Python, consultez notre article de guide sur le sujet.

Cet article vous a-t-il été utile ?
Aller au menu principal