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.
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel
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 :
DataFrame.index
pythonSyntaxe 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 :
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)
pythonLe 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é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 :
# Accès à la colonne « Âge »
print(df['Âge'])
pythonVous obtenez comme résultat les différentes valeurs d’âge :
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[]
. 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 » :
print(df.loc[0])
pythonComme prévu, les valeurs correspondant à « Alice » sont visibles dans le résultat :
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[].
# 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])
pythonLes résultats de l’utilisation de iloc[]
ressemblent à ceci et renvoient les valeurs attendues :
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 :
print(df.at(1, 'Ville'))
pythonComme 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
:
print(df.iat[1, 2])
pythonIndexation 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 :
# Sélection des lignes où l'âge est supérieur à 30
print(df[df['Âge'] > 30])
pythonLa 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’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.
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.