Remise en forme avec la méthode pivot

Remanier des données avec pandas

Maria Eugenia Inzaugarat

Data Scientist

Du format long au format large

  • Montrer le lien entre deux colonnes
  • Séries temporelles avec les variables
  • Opération qui exige des colonnes comme variables uniques
1 https://pandas.pydata.org/docs/user_guide/reshaping.html
Remanier des données avec pandas

Du format long au format large

DataFrame en format long

Remanier des données avec pandas

Méthode pivot

Flèche du format long vers large

 

appel de la méthode pivot de pandas

Remanier des données avec pandas

Méthode pivot

Flèche du format long vers large

 

Appel de pivot avec des arguments

Remanier des données avec pandas

Méthode pivot

DataFrames long et large avec colonne et index en surbrillance

 

Argument index en surbrillance avec nom de colonne

Remanier des données avec pandas

Méthode pivot

DataFrames long et large avec colonnes et noms en surbrillance

 

Argument columns en surbrillance avec nom de colonne

Remanier des données avec pandas

Méthode pivot

DataFrames long et large avec colonnes et valeurs en surbrillance

 

Argument values en surbrillance avec nom de colonne

Remanier des données avec pandas

Méthode pivot

Valeur de cellule NaN en surbrillance

 

Arguments en surbrillance avec noms de colonnes

Remanier des données avec pandas

Pivoter un ensemble de données

fifa = pd.read_csv('fifa_players.csv')
fifa.head()
                 name    variable  metric_system  imperial_system
0   Cristiano Ronaldo      weight             83           183.00
1            J. Oblak      weight             87           191.00
2   Cristiano Ronaldo      height            187             6.13
3     J. Oblak             height            188             6.16
Remanier des données avec pandas

Pivoter un ensemble de données

fifa.pivot(index='name'                                            )
Remanier des données avec pandas

Pivoter un ensemble de données

fifa.pivot(index='name', columns='variable'                        )
Remanier des données avec pandas

Pivoter un ensemble de données

fifa.pivot(index='name', columns='variable', values='metric_system')
         variable  height   weight
             name        
Cristiano Ronaldo     187       83
         J. Oblak     188       87
Remanier des données avec pandas

Pivoter plusieurs colonnes

fifa.pivot(index='name', columns='variable', values=['metric_system', 'imperial_system'])
                     metric_system     imperial_system       
         variable   height  weight     height   weight
             name                                                         
Cristiano Ronaldo      187      83       6.13    183.0
         J. Oblak      188      87       6.16    191.0
Remanier des données avec pandas

Pivoter plusieurs colonnes

 

Flèche du format long vers large avec index de colonnes hiérarchique

 

Arguments index et columns en surbrillance avec noms de colonnes

Remanier des données avec pandas

Pivoter plusieurs colonnes

fifa.pivot(index="name", columns="variable")
                     metric_system     imperial_system       
         variable   height  weight     height   weight
             name                                                         
Cristiano Ronaldo      187      83       6.13    183.0
         J. Oblak      188      87       6.16    191.0
Remanier des données avec pandas

Erreur d'entrées en double

another_fifa.head()
                 name    variable  metric_system  imperial_system
0   Cristiano Ronaldo      weight             83           183.00
1            J. Oblak      weight             87           191.00
2   Cristiano Ronaldo      height            187             6.13
3            J. Oblak      height            188             6.16
4   Cristiano Ronaldo      height            187             6.14
Remanier des données avec pandas

Erreur d'entrées en double

another_fifa.head()
                 name    variable  metric_system  imperial_system
0   Cristiano Ronaldo      weight             83           183.00
1            J. Oblak      weight             87           191.00
  2   Cristiano Ronaldo      height            187             6.13 <--
3            J. Oblak      height            188             6.16
  4   Cristiano Ronaldo      height            187             6.14 <--
Remanier des données avec pandas

Erreur d'entrées en double

another_fifa.pivot(index="name", columns="variable")
ValueError: Index contains duplicate entries, cannot reshape

 

another_fifa = another_fifa.drop(4, axis=0)
another_fifa.pivot(index="name", columns="variable")
                     metric_system     imperial_system       
         variable   height  weight     height   weight
             name                                                         
Cristiano Ronaldo      187      83       6.13    183.0
         J. Oblak      188      87       6.16    191.0
Remanier des données avec pandas

Passons à la pratique !

Remanier des données avec pandas

Preparing Video For Download...