1. Description de la méthode loc() DataFrame
La méthode pandas.DataFrame.loc[] est utilisée pour accéder à un groupe de lignes et de colonnes par étiquettes ou un tableau booléen... Pandas DataFrame est une structure de données tabulaire bidimensionnelle avec des axes étiquetés. La sélection de colonnes à partir de DataFrame donne un nouveau DataFrame contenant uniquement les colonnes sélectionnées spécifiées à partir du DataFrame d'origine.
2. Exemples d'usages de la méthode loc() DataFrame
Nous allons voir les différents usage de la méthode loc() à travers l'exemple suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# importation de la bibliothèque pandas import pandas as ps # représentation des données sur un dictionnaire python dictData = {'A' : ['A1', 'A2', 'A3', 'A4' , 'A5'] , 'B': ['B1' , 'B2' , 'B3' , 'B4' , 'B5'] , 'C': ['C1' , 'C2' , 'C3' , 'C4' , 'C5'] , 'D' : ['D1' , 'D2', 'D3','D4' , 'D5'] } index_rows = ['r1' , 'r2' , 'r3' , 'r4' , 'r5'] # créer un objet dataframe df = ps.DataFrame(dictData , index = index_rows) # afficher les éléments d'une colonne du DataFrame print(df) |
Cet exemple affiche le tableau suivant:
1 2 3 4 5 6 |
A B C D r1 A1 B1 C1 D1 r2 A2 B2 C2 D2 r3 A3 B3 C3 D3 r4 A4 B4 C4 D4 r5 A5 B5 C5 D5 |
2.1 Sélectionner une ou plusieurs colonne d'un DataFrame via la méthode loc()
Pour sélectionner une colonne du DataFrame, il suffit de passer le nom de la colonne en paramètres de la méthodes loc():
Exemple
1 2 3 4 5 6 7 8 9 10 11 |
# sélectionner une colonne print(df.loc[: , 'B']) """ output: r1 B1 r2 B2 r3 B3 r4 B4 r5 B5 Name: B, dtype: object """ |
On peut aussi sélectionner plusieurs colonnes du DataFrame:
1 2 3 4 5 6 7 8 9 10 11 |
# Selection multiple de colonnes par étiquettes print(df.loc[:, ['B' , 'D']]) """ output: B D r1 B1 D1 r2 B2 D2 r3 B3 D3 r4 B4 D4 r5 B5 D5 """ |
On peut aussi faire une sélection multiple entre deux colonnes:
Exemple (sélection depuis la colonne 'B' jusqu'à la colonne 'D')
1 2 3 4 5 6 7 8 9 10 11 |
# Select between to colonnes print(df.loc[:, 'B':'D']) """ output: B C D r1 B1 C1 D1 r2 B2 C2 D2 r3 B3 C3 D3 r4 B4 C4 D4 r5 B5 C5 D5 """ |
2.2 Sélectionner une ou plusieurs lignes
Pour sélectionner une ligne du DataFrame, il suffit d'utiliser son index en paramètres
Exemple
1 2 3 4 5 6 7 |
# sélectionner la ligne d'index 'r3' print(df.loc[['r3']]) """ output: A B C D r3 A3 B3 C3 D3 """ |
De la même façon, on peut sélectionner plusieurs lignes
Exemple
1 2 3 4 5 6 7 8 9 |
# sélection multiple de lignes print(df.loc[['r2', 'r3', 'r5']]) """ output: A B C D r2 A2 B2 C2 D2 r3 A3 B3 C3 D3 r5 A5 B5 C5 D5 """ |
On peut aussi faire une sélection multiple entre deux index:
Exemple (sélection depuis l'index 1 jusqu'au index 4)
1 2 3 4 5 6 7 8 9 10 |
#Select between print(df.loc['r1':'r4']) """ output: A B C D r1 A1 B1 C1 D1 r2 A2 B2 C2 D2 r3 A3 B3 C3 D3 r4 A4 B4 C4 D4 """ |
De même, en utilisant des plages, on peut également faire une sélection alternative du DataFrame:
Exemple (sélectionner les lignes d'index 'r1' , 'r3' , 'r5')
1 2 3 4 5 6 7 8 9 |
# Sélection les lignes d'une façon alternative print(df.loc['r1':'r5':2]) """ output: A B C D r1 A1 B1 C1 D1 r3 A3 B3 C3 D3 r5 A5 B5 C5 D5 """ |
2.3 Accéder à une valeur du DataFrame via l'index de la ligne et l'étiquette de la colonne
Jusqu'à maintenant on a pas encore vue comment accéder à une valeur spécifique du DataFrame selon l'étiquette de la colonne et l'index de la ligne. A cet effet, il suffit de passer l'index de la ligne et l'étiquette de la colonne de la valeur en question:
Exemple
1 2 3 4 5 |
print(df.loc['r2', 'C']) """ output: 'C2' """ |
La même méthode pourra être utilisée pour changer une valeur du DataFrame:
1 2 3 4 5 6 7 8 9 10 11 12 |
df.loc['r1', 'A'] = 'X1' df.loc['r2', 'A'] = 'X2' print(df) """ output: A B C D r1 X1 B1 C1 D1 r2 X2 B2 C2 D2 r3 A3 B3 C3 D3 r4 A4 B4 C4 D4 r5 A5 B5 C5 D5 """ |
2.4 Usage des conditions avec pandas.DataFrame.loc()
En générale lors d'une sélection d'un tableau, on souhaite parfois ajouter une condition comme age >= 18 ans , salaire < 1500 euros...
Exemple (Sélectionner les étudiants dont l'age est inférieur à 23 ans)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import pandas as pan dictData = {'ID' : [1, 2, 3 , 4] , 'Nom': ['Natalie', 'Robert', 'Bernard' , 'Adam'], 'Age': [22, 23, 24 , 21], 'Taille': [170, 190, 181 , 175]} df = pan.DataFrame(dictData) # sélectionner les étudiants dont l'age est inférieur à 23 ans print(df.loc[df['Age'] < 23]) """ output: ID Nom Age Taille 0 1 Natalie 22 170 3 4 Adam 21 175 """ |
Younes Derfoufi
CRMEF OUJDA