# Pandas loc\[\] : sélectionner des données dans un DataFrame

Pandas `DataFrame.loc[]` est une propriété DataFrame dans la bibliothèque Python Pandas utilisée pour sélectionner des données dans un DataFrame en fonction d’étiquettes. Ainsi, les lignes et les colonnes d’un DataFrame peuvent être extraites de manière ciblée.

## Syntaxe de Pandas `loc[]`

Passez en paramètre à `loc[]` la **sélection d’étiquettes désirée**. Pour le reste, la syntaxe est très simple :

```python
DataFrame.loc[selection]
```

Avec Pandas `loc[]`, la sélection est principalement basée sur les étiquettes. Le paramètre passé peut donc être un **label unique, une liste ou une plage d’étiquettes**. Il est également possible d’utiliser des tableaux booléens.

## `loc[]` vs. `iloc[]`

Alors que Pandas `DataFrame.loc[]` sélectionne des données basées sur des étiquettes, [DataFrame.iloc](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-iloc/), dont la consonance est similaire, est utilisé pour sélectionner des données basées sur des positions entières.

L’exemple suivant permet d’illustrer les différences entre ces deux paramètres. Tout d’abord, on crée un [Pandas DataFrame](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe/) :

```python
import pandas as pd
# Exemple de DataFrame
data = {'Nom': ['Anna', 'Bob', 'Chris'], 'Âge': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
```

Le DataFrame résultant ressemble à ce qui suit :

```none
Nom  Âge
0  Anna    23
1    Bob    35
2 Chris    30
```

Pour extraire « Anna » du DataFrame, Pandas `loc[]` et `iloc[]` peuvent être utilisés. Les deux méthodes donnent le même résultat, mais `loc[]` utilise un index basé sur les étiquettes alors que `iloc[]` utilise un index numérique.

```python
# Utilisation de loc pour trouver l’étiquette
print(df.loc[0, 'Nom'])  # Sortie : 'Anna'
# Utilisation de iloc pour trouver la position
print(df.iloc[0, 0])  # Sortie : 'Anna'
```

## Application de Pandas `DataFrame.loc[]`

Pandas `loc[]` vous aide à **extraire des sous-ensembles de votre DataFrame**. Il peut s’agir d’une ou plusieurs lignes ou colonnes : en effet, `loc[]` peut être utilisé dans différents cas.

### Sélection d’une seule ligne

Nous allons maintenant examiner un exemple de DataFrame avec les données suivantes :

```python
import pandas as pd
data = {
    'Nom': ['Anna', 'Bob', 'Chris'],
    'Âge': [23, 35, 30],
    'Ville': ['Paris', 'Lyon', 'Marseille']
}
df = pd.DataFrame(data)
print(df)
```

Le DataFrame résultant est le suivant :

```none
Nom  Âge     Ville
0   Anna   23     Paris
1    Bob   35      Lyon
2  Chris   30  Marseille
```

Pour sélectionner les données de la ligne avec l’index 1 (correspondant à Bob), on utilise Pandas `loc[]` :

```python
bob_data = df.loc[1]
print(bob_data)
```

Le résultat est conforme aux attentes :

```none
Nom       Bob
Âge        35
Ville    Lyon
Name: 1, dtype: object
```

### Sélection de plusieurs colonnes

Pandas `DataFrame.loc[]` est utile pour sélectionner un sous-ensemble de colonnes. En utilisant `:`, on sélectionne toutes les lignes. Le code suivant sélectionne les colonnes « Nom » et « Ville » pour toutes les lignes :

```python
nom_ville = df.loc[:, ['Nom', 'Ville']]
print(nom_ville)
```

Le résultat est un sous-ensemble du DataFrame original :

```none
Nom      Ville
0   Anna     Paris
1    Bob      Lyon
2  Chris  Marseille
```

### Sélection conditionnelle

Avec Pandas `loc[]`, il est également possible de filtrer les lignes en fonction d’une condition. Pour cela, il suffit d’utiliser les opérateurs booléens de comparaison. Par exemple, dans le code suivant, toutes les personnes âgées de plus de 25 ans doivent être filtrées :

```python
older_than_25 = df.loc[df['Âge'] > 25]
print(older_than_25)
```

Le code ci-dessus renvoie le DataFrame suivant, qui ne contient plus que les données des personnes âgées de plus de 25 ans :

```none
Nom  Âge        Ville
1    Bob    35        Lyon
2 Chris    30  Marseille
```


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