Introduction à l’analyse de données

Séance 6 - indexes multi-niveaux

Emmanuel Coquery

Page UE

Vu précédement

  • Données tabulaires
  • Pandas, Dataframes, Series, indexes
  • Filtrer les données (colonnes, lignes)
  • Combiner des données, (concat, jointure, aggrégation)
  • Figures

Terminer la séance précédente

Index à plusieurs valeurs

MultiIndex en pandas

  • Identifier une ligne avec une combinaison de valeurs
  • e.g. une paire de valeurs (nom, prénom)

Niveaux (level)

  • chaque composant de l’index correspond à un niveau (level)

  • le niveau peut être un numéro (à partir de 0) et/ou un nom

  • noms de niveaux modifiables via:

    mon_index.set_level(
      "nouveau_nom",
      level="ancien_niveau")
    

Valeurs de l’index

mon_index.get_level_values(le_niveau)

Digression: Changements d’indexes

Changer l’index d’une DataFrame / Series

# Transforme une colonne en index
ma_df.set_index("ma_colonne")

ou bien

# Change l'index en en utilisant un autre
ma_df.set_index(un_index)

Attention, il est possible d’obtenir ainsi plusieurs lignes avec la même valeur d’index

Obtenir des indexes multiples

Par set_index

ma_df.set_index(["colonne1", "colonne2"])

Par groupby

ma_df.groupby(by=["colonne1", "colonne2"]).mon_aggregation()

Exercices set_index

  • Obtenir la DataFrame indexée par Subject et Space
  • Obtenir la DataFrame indexée par Subject, Space et l’index original avec un niveau nommé essai (on peut utiliser .rename sur un index)

Exercices groupby

  • Faire une dataframe du temps de réponse moyen par Name_A, Name_B
  • Faire une dataframe du temps de réponse max par sujet et par différence de distance (symbolique)
  • Faire une dataframe du nombre, puis du taux de bonnes réponses par Mode, Side et Space