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