Mengubah bentuk dengan metode pivot

Mengubah Bentuk Data dengan pandas

Maria Eugenia Inzaugarat

Data Scientist

Dari long ke wide

  • Menunjukkan hubungan antara dua kolom
  • Operasi deret waktu dengan variabel
  • Operasi yang memerlukan kolom sebagai variabel unik
1 https://pandas.pydata.org/docs/user_guide/reshaping.html
Mengubah Bentuk Data dengan pandas

Dari long ke wide

DataFrame berformat panjang

Mengubah Bentuk Data dengan pandas

Metode pivot

Panah dari format panjang ke lebar

 

pemanggilan metode pivot pandas

Mengubah Bentuk Data dengan pandas

Metode pivot

Panah dari format panjang ke lebar

 

Pemanggilan pivot dengan argumen

Mengubah Bentuk Data dengan pandas

Metode pivot

DataFrame panjang dan lebar dengan kolom dan indeks disorot

 

Argumen index disorot dengan nama kolom

Mengubah Bentuk Data dengan pandas

Metode pivot

DataFrame panjang dan lebar dengan kolom dan nama kolom disorot

 

Argumen columns disorot dengan nama kolom

Mengubah Bentuk Data dengan pandas

Metode pivot

DataFrame panjang dan lebar dengan kolom dan values disorot

 

Argumen values disorot dengan nama kolom

Mengubah Bentuk Data dengan pandas

Metode pivot

Nilai sel NaN disorot

 

Argumen yang disorot dengan nama kolom

Mengubah Bentuk Data dengan pandas

Memutar (pivot) dataset

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
Mengubah Bentuk Data dengan pandas

Memutar (pivot) dataset

fifa.pivot(index='name'                                            )
Mengubah Bentuk Data dengan pandas

Memutar (pivot) dataset

fifa.pivot(index='name', columns='variable'                        )
Mengubah Bentuk Data dengan pandas

Memutar (pivot) dataset

fifa.pivot(index='name', columns='variable', values='metric_system')
         variable  height   weight
             name        
Cristiano Ronaldo     187       83
         J. Oblak     188       87
Mengubah Bentuk Data dengan pandas

Memutar beberapa kolom

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
Mengubah Bentuk Data dengan pandas

Memutar beberapa kolom

 

Panah dari format panjang ke lebar dengan indeks kolom hierarkis

 

Argumen index dan columns disorot dengan nama kolom

Mengubah Bentuk Data dengan pandas

Memutar beberapa kolom

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
Mengubah Bentuk Data dengan pandas

Error entri duplikat

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
Mengubah Bentuk Data dengan pandas

Error entri duplikat

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 <--
Mengubah Bentuk Data dengan pandas

Error entri duplikat

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
Mengubah Bentuk Data dengan pandas

Ayo berlatih!

Mengubah Bentuk Data dengan pandas

Preparing Video For Download...