L’in­dexa­tion des Da­ta­Frames dans Pandas Python permet un accès efficace et direct à des données spé­ci­fiques au sein d’un DataFrame. L’uti­li­sa­tion d’un index de DataFrame Pandas permet de sé­lec­tion­ner des lignes et des colonnes spé­ci­fiques, ce qui peut faciliter con­si­dé­ra­ble­ment l’analyse des données.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

Que se passe-t-il lors de l’in­dexa­tion ?

L’in­dexa­tion d’un Pandas DataFrame a pour objectif de faciliter la sélection d’éléments spé­ci­fiques du DataFrame. On peut ainsi sé­lec­tion­ner des lignes et des colonnes en fonction de leurs positions ou de leurs éti­quettes. Les index peuvent aider à trouver et à traiter les données plus ra­pi­de­ment en four­nis­sant 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’in­dexa­tion des Da­ta­Frames

Il existe plusieurs façons d’indexer les Pandas Da­ta­Frames. La syntaxe d’in­dexa­tion varie en fonction de l’opération souhaitée.

In­dexa­tion avec des labels (noms de colonnes)

Les Pandas Da­ta­Frames peuvent utiliser des noms de colonnes pour l’in­dexa­tion. 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é­ci­fique, vous pouvez utiliser son nom en com­bi­nai­son avec l’opérateur []. Il suffit de spécifier le nom de la colonne dans l’opérateur d’in­dexa­tion sous la forme d’une chaîne (string) Python :

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

Vous obtenez comme résultat les dif­fé­rentes valeurs d’âge :

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

Si vous vous in­té­res­sez non pas à une, mais à plusieurs colonnes, vous pouvez sim­ple­ment spécifier leurs noms, séparés par des virgules, dans l’opérateur d’in­dexa­tion.

In­dexa­tion avec loc[] (nom de ligne)

Si vous souhaitez accéder à une ligne spé­ci­fique 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 con­si­dé­rons le même DataFrame que pré­cé­dem­ment ; nous sou­hai­tons extraire la première ligne contenant les valeurs pour « Alice » :

print(df.loc[0])
python

Comme prévu, les valeurs cor­res­pon­dant à « Alice » sont visibles dans le résultat :

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

In­dexa­tion avec iloc[] (numéros de lignes et de colonnes)

Une autre façon d’accéder à des éléments spé­ci­fiques de votre DataFrame est d’utiliser les numéros de ligne et de colonne. Pour tra­vail­ler 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’uti­li­sa­tion de iloc[] res­semblent à ceci et renvoient les valeurs attendues :

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

Indexer des valeurs in­di­vi­duelles

Si vous n’êtes intéressé que par une valeur spé­ci­fique de votre DataFrame, l’indexeur at est un moyen efficace d’extraire cette valeur. Dé­fi­nis­sez sim­ple­ment la ligne et la colonne dans les­quelles la valeur doit être trouvée, avec leur nom. Ainsi, si le lieu de résidence de Bob est in­té­res­sant, 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 fonc­tionne 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’uti­li­sa­tion de iat :

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

In­dexa­tion booléenne

Il est possible d’indexer des sous-ensembles d’un DataFrame en se basant sur une condition par­ti­cu­lière. Dans ce cas, on parle d’in­dexa­tion booléenne. La condition à vérifier doit être évaluée à True ou à False et est placée di­rec­te­ment dans l’opérateur d’in­dexa­tion. Pour n’extraire que les lignes dans les­quelles 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’in­dexa­tion est un outil fon­da­men­tal en Pandas qui permet d’accéder ef­fi­ca­ce­ment aux données et d’extraire des sous-ensembles per­ti­nents pour l’analyse.

Note

Notez que dans l’in­dexa­tion booléenne, vous pouvez utiliser tous les opé­ra­teurs booléens de com­pa­rai­son qui évaluent soit vers True soit vers False. Pour en savoir plus sur les dif­fé­rents opé­ra­teurs Python, consultez notre article de guide sur le sujet.

Aller au menu principal