Przekształcanie metodą pivot

Przekształcanie danych z pandas

Maria Eugenia Inzaugarat

Data Scientist

Z formatu długiego do szerokiego

  • Pokazanie zależności między dwiema kolumnami
  • Operacje na szeregach czasowych na zmiennych
  • Operacje wymagające unikalnej zmiennej w kolumnach
1 https://pandas.pydata.org/docs/user_guide/reshaping.html
Przekształcanie danych z pandas

Z formatu długiego do szerokiego

DataFrame w formacie długim

Przekształcanie danych z pandas

Metoda pivot

Strzałka wskazująca przejście z formatu długiego do szerokiego

 

Wywołanie metody pivot w pandas

Przekształcanie danych z pandas

Metoda pivot

Strzałka wskazująca przejście z formatu długiego do szerokiego

 

Wywołanie pivot z argumentami

Przekształcanie danych z pandas

Metoda pivot

Długi i szeroki DataFrame z wyróżnioną kolumną i indeksem

 

Wyróżniony argument index z nazwą kolumny

Przekształcanie danych z pandas

Metoda pivot

Długi i szeroki DataFrame z wyróżnioną kolumną i nazwami kolumn

 

Wyróżniony argument columns z nazwą kolumny

Przekształcanie danych z pandas

Metoda pivot

Długi i szeroki DataFrame z wyróżnioną kolumną i wartościami

 

Wyróżniony argument values z nazwą kolumny

Przekształcanie danych z pandas

Metoda pivot

Wyróżniona komórka z wartością NaN

 

Wyróżnione argumenty z nazwami kolumn

Przekształcanie danych z pandas

Przestawianie zbioru danych

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
Przekształcanie danych z pandas

Przestawianie zbioru danych

fifa.pivot(index='name'                                            )
Przekształcanie danych z pandas

Przestawianie zbioru danych

fifa.pivot(index='name', columns='variable'                        )
Przekształcanie danych z pandas

Przestawianie zbioru danych

fifa.pivot(index='name', columns='variable', values='metric_system')
         variable  height   weight
             name        
Cristiano Ronaldo     187       83
         J. Oblak     188       87
Przekształcanie danych z pandas

Przestawianie wielu kolumn

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
Przekształcanie danych z pandas

Przestawianie wielu kolumn

 

Strzałka wskazująca przejście z formatu długiego do szerokiego z hierarchicznym indeksem kolumn

 

Wyróżnione argumenty index i columns z nazwami kolumn

Przekształcanie danych z pandas

Przestawianie wielu kolumn

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
Przekształcanie danych z pandas

Błąd zduplikowanych wpisów

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
Przekształcanie danych z pandas

Błąd zduplikowanych wpisów

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 <--
Przekształcanie danych z pandas

Błąd zduplikowanych wpisów

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
Przekształcanie danych z pandas

Czas na ćwiczenia!

Przekształcanie danych z pandas

Preparing Video For Download...