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.
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel
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 :
DataFrame.loc[selection]
pythonAvec 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, 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 :
import pandas as pd
# Exemple de DataFrame
data = {'Nom': ['Anna', 'Bob', 'Chris'], 'Âge': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
pythonLe DataFrame résultant ressemble à ce qui suit :
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.
# 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'
pythonApplication 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 :
import pandas as pd
data = {
'Nom': ['Anna', 'Bob', 'Chris'],
'Âge': [23, 35, 30],
'Ville': ['Paris', 'Lyon', 'Marseille']
}
df = pd.DataFrame(data)
print(df)
pythonLe DataFrame résultant est le suivant :
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[]
:
bob_data = df.loc[1]
print(bob_data)
pythonLe résultat est conforme aux attentes :
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 :
nom_ville = df.loc[:, ['Nom', 'Ville']]
print(nom_ville)
pythonLe résultat est un sous-ensemble du DataFrame original :
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 :
older_than_25 = df.loc[df['Âge'] > 25]
print(older_than_25)
pythonLe code ci-dessus renvoie le DataFrame suivant, qui ne contient plus que les données des personnes âgées de plus de 25 ans :
Nom Âge Ville
1 Bob 35 Lyon
2 Chris 30 Marseille