# Pandas : comprendre l’index DataFrame

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.

## 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 :

```python
DataFrame.index
```

## 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 :

```python
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)
```

Le DataFrame se présente comme suit :

```none
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 :

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

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

```none
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[]`](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-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 » :

```python
print(df.loc[0])
```

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

```none
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\[\]](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-iloc/).

```python
# 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])
```

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

```none
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 :

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

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` :

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

### 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 :

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

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

```none
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.


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-index/](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-index/) for AI/LLM consumption.