Remodelare cu metoda pivot

Restructurarea datelor cu pandas

Maria Eugenia Inzaugarat

Data Scientist

De la format lung la lat

  • Demonstrarea relației dintre două coloane
  • Operații pe serii de timp cu variabilele
  • Operații care necesită coloane cu valori unice
1 https://pandas.pydata.org/docs/user_guide/reshaping.html
Restructurarea datelor cu pandas

De la format lung la lat

DataFrame în format lung

Restructurarea datelor cu pandas

Metoda pivot

Săgeată de la format lung la lat

 

Apelul metodei pivot din pandas

Restructurarea datelor cu pandas

Metoda pivot

Săgeată de la format lung la lat

 

Apelul pivot cu argumente

Restructurarea datelor cu pandas

Metoda pivot

DataFrame-uri lung și lat cu coloana și indexul evidențiate

 

Argumentul index evidențiat cu numele coloanei

Restructurarea datelor cu pandas

Metoda pivot

DataFrame-uri lung și lat cu coloana și numele coloanelor evidențiate

 

Argumentul columns evidențiat cu numele coloanei

Restructurarea datelor cu pandas

Metoda pivot

DataFrame-uri lung și lat cu coloana și valorile evidențiate

 

Argumentul values evidențiat cu numele coloanei

Restructurarea datelor cu pandas

Metoda pivot

O celulă NaN evidențiată

 

Argumente evidențiate cu numele coloanelor

Restructurarea datelor cu pandas

Pivotarea unui set de date

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
Restructurarea datelor cu pandas

Pivotarea unui set de date

fifa.pivot(index='name'                                            )
Restructurarea datelor cu pandas

Pivotarea unui set de date

fifa.pivot(index='name', columns='variable'                        )
Restructurarea datelor cu pandas

Pivotarea unui set de date

fifa.pivot(index='name', columns='variable', values='metric_system')
         variable  height   weight
             name        
Cristiano Ronaldo     187       83
         J. Oblak     188       87
Restructurarea datelor cu pandas

Pivotarea mai multor coloane

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
Restructurarea datelor cu pandas

Pivotarea mai multor coloane

 

Săgeată de la format lung la lat cu index de coloană ierarhic

 

Argumentele index și columns evidențiate cu numele coloanelor

Restructurarea datelor cu pandas

Pivotarea mai multor coloane

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
Restructurarea datelor cu pandas

Eroare la intrări duplicate

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
Restructurarea datelor cu pandas

Eroare la intrări duplicate

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 <--
Restructurarea datelor cu pandas

Eroare la intrări duplicate

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
Restructurarea datelor cu pandas

Să exersăm!

Restructurarea datelor cu pandas

Preparing Video For Download...