Index explicites

Manipulation de données avec pandas

Richie Cotton

Data Evangelist at DataCamp

L’ensemble de données sur les chiens, revisité

print(dogs)
      name        breed  color  height_cm  weight_kg
0    Bella     Labrador  Brown         56         25
1  Charlie       Poodle  Black         43         23
2     Lucy    Chow Chow  Brown         46         22
3   Cooper    Schnauzer   Gray         49         17
4      Max     Labrador  Black         59         29
5   Stella    Chihuahua    Tan         18          2
6   Bernie  St. Bernard  White         77         74
Manipulation de données avec pandas

.columns et .index

dogs.columns
Index(['name', 'breed', 'color', 'height_cm', 'weight_kg'], dtype='object')
dogs.index
RangeIndex(start=0, stop=7, step=1)
Manipulation de données avec pandas

Définition d’une colonne comme index

dogs_ind = dogs.set_index("name")

print(dogs_ind)
               breed  color  height_cm  weight_kg
name                                             
Bella       Labrador  Brown         56         25
Charlie       Poodle  Black         43         23
Lucy       Chow Chow  Brown         46         22
Cooper     Schnauzer   Grey         49         17
Max         Labrador  Black         59         29
Stella     Chihuahua    Tan         18          2
Bernie   St. Bernard  White         77         74
Manipulation de données avec pandas

Suppression d’un index

dogs_ind.reset_index()
      name        breed  color  height_cm  weight_kg
0    Bella     Labrador  Brown         56         25
1  Charlie       Poodle  Black         43         23
2     Lucy    Chow Chow  Brown         46         22
3   Cooper    Schnauzer   Grey         49         17
4      Max     Labrador  Black         59         29
5   Stella    Chihuahua    Tan         18          2
6   Bernie  St. Bernard  White         77         74
Manipulation de données avec pandas

Suppression d’un index

dogs_ind.reset_index(drop=True)
         breed  color  height_cm  weight_kg
0     Labrador  Brown         56         25
1       Poodle  Black         43         23
2    Chow Chow  Brown         46         22
3    Schnauzer   Grey         49         17
4     Labrador  Black         59         29
5    Chihuahua    Tan         18          2
6  St. Bernard  White         77         74
Manipulation de données avec pandas

Les index simplifient la subdivision

dogs[dogs["name"].isin(["Bella", "Stella"])]
     name      breed  color  height_cm  weight_kg
0   Bella   Labrador  Brown         56         25
5  Stella  Chihuahua    Tan         18          2
dogs_ind.loc[["Bella", "Stella"]]
            breed  color  height_cm  weight_kg
name                                          
Bella    Labrador  Brown         56         25
Stella  Chihuahua    Tan         18          2
Manipulation de données avec pandas

Les valeurs d’index peuvent se répéter

dogs_ind2 = dogs.set_index("breed")
print(dogs_ind2)
                name  color  height_cm  weight_kg
breed                                            
Labrador       Bella  Brown         56         25
Poodle       Charlie  Black         43         23
Chow Chow       Lucy  Brown         46         22
Schnauzer     Cooper   Grey         49         17
Labrador         Max  Black         59         29
Chihuahua     Stella    Tan         18          2
St. Bernard   Bernie  White         77         74
Manipulation de données avec pandas

Subdivision sur des valeurs d’index en double

dogs_ind2.loc["Labrador"]
           name  color  height_cm  weight_kg
breed                                       
Labrador  Bella  Brown         56         25
Labrador    Max  Black         59         29
Manipulation de données avec pandas

Index multi-niveaux ou index hiérarchiques

dogs_ind3 = dogs.set_index(["breed", "color"])
print(dogs_ind3)
                      name  height_cm  weight_kg
breed       color                               
Labrador    Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Chow Chow   Brown     Lucy         46         22
Schnauzer   Grey    Cooper         49         17
Labrador    Black      Max         59         29
Chihuahua   Tan     Stella         18          2
St. Bernard White   Bernie         77         74
Manipulation de données avec pandas

Subdiviser le niveau externe avec une liste

dogs_ind3.loc[["Labrador", "Chihuahua"]]
                   name  height_cm  weight_kg
breed     color                              
Labrador  Brown   Bella         56         25
          Black     Max         59         29
Chihuahua Tan    Stella         18          2
Manipulation de données avec pandas

Subdiviser les niveaux internes avec une liste d’uplets

dogs_ind3.loc[[("Labrador", "Brown"), ("Chihuahua", "Tan")]]
                   name  height_cm  weight_kg
breed     color                              
Labrador  Brown   Bella         56         25
Chihuahua Tan    Stella         18          2
Manipulation de données avec pandas

Tri par valeurs d’index

dogs_ind3.sort_index()
                      name  height_cm  weight_kg
breed       color                               
Chihuahua   Tan     Stella         18          2
Chow Chow   Brown     Lucy         46         22
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Poodle      Black  Charlie         43         23
Schnauzer   Grey    Cooper         49         17
St. Bernard White   Bernie         77         74
Manipulation de données avec pandas

Contrôle de sort_index

dogs_ind3.sort_index(level=["color", "breed"], ascending=[True, False])
                      name  height_cm  weight_kg
breed       color                               
Poodle      Black  Charlie         43         23
Labrador    Black      Max         59         29
            Brown    Bella         56         25
Chow Chow   Brown     Lucy         46         22
Schanuzer   Grey    Cooper         49         17
Chihuahua   Tan     Stella         18          2
St. Bernard White   Bernie         77         74
Manipulation de données avec pandas

Vous avez maintenant deux problèmes

  • Les valeurs d’index ne sont que des données
  • Les index ne respectent pas le principe de « données propres »
  • Vous devez apprendre deux syntaxes
Manipulation de données avec pandas

Ensemble de données sur les températures

date ville pays temp_moy_c
0 2000-01-01 Abidjan Côte d’Ivoire 27.293
1 2000-02-01 Abidjan Côte d’Ivoire 27.685
2 2000-03-01 Abidjan Côte d’Ivoire 29.061
3 2000-04-01 Abidjan Côte d’Ivoire 28.162
4 2000-05-01 Abidjan Côte d’Ivoire 27.547
Manipulation de données avec pandas

Passons à la pratique !

Manipulation de données avec pandas

Preparing Video For Download...