Bekerja dengan banyak level

Mengubah Bentuk Data dengan pandas

Maria Eugenia Inzaugarat

Instructor

Ulasan

  • Stack dan unstack DataFrame dan Series
  • Pilih level untuk stack atau unstack berdasarkan nama atau nomor
  • Susun ulang level dengan menggabungkan unstack dan stack
Mengubah Bentuk Data dengan pandas

Menyusun ulang banyak level

  • Tukar level
  • Stack dan unstack beberapa level sekaligus
Mengubah Bentuk Data dengan pandas

Tukar level

DataFrame dan panah yang menunjukkan pertukaran level

  metode swaplevel

Mengubah Bentuk Data dengan pandas

Tukar level

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
Mengubah Bentuk Data dengan pandas

Tukar level

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.swaplevel(0, 2)
                        2019  2020
VW       Golf    price    25    26
                 sold     68    72
         Passat  price    31    32
                 sold     72    73
Mercedes A-class price    41    42
                 sold     68    69
         C-class price    32    33
                 sold     75    74
Mengubah Bentuk Data dengan pandas

Tukar level dan unstack

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.swaplevel(0, 2).unstack()
                       2019       2020     
                 price sold price sold
Mercedes A-class    41   68    42   69
         C-class    32   75    33   74
     VW     Golf    25   68    26   72
          Passat    31   72    32   73
Mengubah Bentuk Data dengan pandas

Tukar level dan unstack

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.unstack()
              Mercedes    VW Mercedes    VW
                  2019  2019     2020  2020
price A-class     41.0   NaN     42.0   NaN
      C-class     32.0   NaN     33.0   NaN
         Golf      NaN  25.0      NaN  26.0
       Passat      NaN  31.0      NaN  32.0
sold  A-class     68.0   NaN     69.0   NaN
      C-class     75.0   NaN     74.0   NaN
         Golf      NaN  68.0      NaN  72.0
       Passat      NaN  72.0      NaN  73.0
Mengubah Bentuk Data dengan pandas

Tukar level dan unstack

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.unstack().swaplevel(0, 1, axis=1)
                        2019           2020      
              Mercedes    VW Mercedes    VW
price A-class     41.0   NaN     42.0   NaN
      C-class     32.0   NaN     33.0   NaN
         Golf      NaN  25.0      NaN  26.0
       Passat      NaN  31.0      NaN  32.0
sold  A-class     68.0   NaN     69.0   NaN
      C-class     75.0   NaN     74.0   NaN
         Golf      NaN  68.0      NaN  72.0
       Passat      NaN  72.0      NaN  73.0
Mengubah Bentuk Data dengan pandas

Tukar level dan stack

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.stack()
price     Golf       VW   2019    25
                          2020    26
 sold     Golf       VW   2019    68
                          2020    72
price   Passat       VW   2019    31
                          2020    32
 sold   Passat       VW   2019    72
                          2020    73
price  A-class  Mercedes  2019    41
                          2020    42
 sold  A-class  Mercedes  2019    68
                          2020    69
Mengubah Bentuk Data dengan pandas

Tukar level dan stack

cars
                         2019  2020
 price    Golf       VW    25    26
  sold    Golf       VW    68    72
 price  Passat       VW    31    32
  sold  Passat       VW    72    73
 price A-class Mercedes    41    42
  sold A-class Mercedes    68    69
 price C-class Mercedes    32    33
 sold  C-class Mercedes    75    74
cars.stack().swaplevel(0, 2)
     VW     Golf   price  2019    25
                          2020    26
                    sold  2019    68
                          2020    72
          Passat   price  2019    31
                          2020    32
                    sold  2019    72
                          2020    73
Mercedes  A-class  price  2019    41
                          2020    42
                    sold  2019    68
                          2020    69
Mengubah Bentuk Data dengan pandas

Banyak level

Dua DataFrame dengan banyak level dan beberapa disorot

Mengubah Bentuk Data dengan pandas

Unstack beberapa level

cars
year                       2019  2020
  brand     model  feature            
     VW      Golf    price   25    26
                      sold   68    72
           Passat    price   31    32
                      sold   72    73
Mercedes  A-class    price   41    42
                      sold   68    69
          C-class    price   32    33
                      sold   75    74
Mengubah Bentuk Data dengan pandas

Unstack berdasarkan nomor level

cars.unstack(level=[0, 1])
                year            2019                         2020                        
brand            VW         Mercedes          VW         Mercedes        
model   Golf Passat  A-class C-class Golf Passat  A-class C-class
feature                                                          
price    25     31        41      32   26     32       42      33
sold     68     72        68      75   72     73       69      74
Mengubah Bentuk Data dengan pandas

Unstack berdasarkan nama level

cars.unstack(level=['brand', 'model'])
                year            2019                         2020                        
brand            VW         Mercedes          VW         Mercedes        
model   Golf Passat  A-class C-class Golf Passat  A-class C-class
feature                                                          
price    25     31        41      32   26     32       42      33
sold     68     72        68      75   72     73       69      74
Mengubah Bentuk Data dengan pandas

Stack beberapa level

cars_unstacked
   year                           2019                         2020                         
  brand            VW         Mercedes          VW         Mercedes        
  model   Golf Passat  A-class C-class Golf Passat  A-class C-class
feature                                                          
  price   25     31       41      32   26     32       42      33
   sold   68     72       68      75   72     73       69      74
Mengubah Bentuk Data dengan pandas

Stack berdasarkan nama atau nomor

cars_unstacked.stack(level=[0, 1])
                model  A-class  C-class  Golf  Passat
feature year    brand                                   
  price 2019 Mercedes     41.0     32.0   NaN     NaN
                   VW      NaN      NaN  25.0    31.0
        2020 Mercedes     42.0     33.0   NaN     NaN
                   VW      NaN      NaN  26.0    32.0
   sold 2019 Mercedes     68.0     75.0   NaN     NaN
                   VW      NaN      NaN  68.0    72.0
        2020 Mercedes     69.0     74.0   NaN     NaN
                   VW      NaN      NaN  72.0    73.0
cars_unstacked.stack(level=['year', 'brand'])
                model  A-class  C-class  Golf  Passat
feature year    brand                                   
  price 2019 Mercedes     41.0     32.0   NaN     NaN
                   VW      NaN      NaN  25.0    31.0
        2020 Mercedes     42.0     33.0   NaN     NaN
                   VW      NaN      NaN  26.0    32.0
   sold 2019 Mercedes     68.0     75.0   NaN     NaN
                   VW      NaN      NaN  68.0    72.0
        2020 Mercedes     69.0     74.0   NaN     NaN
                   VW      NaN      NaN  72.0    73.0
Mengubah Bentuk Data dengan pandas

Ayo berlatih!

Mengubah Bentuk Data dengan pandas

Preparing Video For Download...