Pandas is pandas

Pandas jest popularną biblioteką w Pythonie służąca do analizy danych. Aby zacząć z niej korzystać, wystarczy zainstalować środowisko np. Jupyter oraz rozpocząć kod od importu biblioteki Pandas.

import pandas as pd

We wpisie posłużę się danymi pobranymi z popularnego serwisu Kaggle.com. Po pobraniu pliku cvs prezentują się one następująco.

W Pandas mamy do dyspozycji dwa główne obiekty używane do analizy danych: Data Frames i Series, zwane dalej ramkami i seriami.

Serie można traktować jako cześć ramek odpowiadającą kolumnom, które nie posiadają nazw. Są to takie jednowymiarowe tablice zawierające homogeniczne dane. Serie posiadają zaś indexy. Użycie indeksów może wyglądać następująco.

iloc – selekcja na bazie indeksów – pobranie pierwszego wpisu czyli tego dotyczącego Messiego 🙂

loc – selekcja na bazie etykiet (nazw kolumn). W przykładzie poniżej zastosowałem pewien skrót, czyli :3 – oznacza on, że należy pobrać wiersze od zera do trzech. Dwukropek służy za operator zakresu.

Jeśli chcemy zamienić jedną wartość na inną używając obliczeń, możemy skorzystać z funkcji map. Jest to analogiczna funkcja do tej znanej z innych języków programowania.

Map i funkcja anonimowa (lambda) operuje na pojedynczej zmiennej. Poniższa funkcja zwraca dla każdego wiersza w ramce różnicę wartości wieku odjętego od średniej wieku dla całej ramki. Widzimy, że pierwszych kilku piłkarzy jest poniżej średniej z całego zbioru.

Oprócz funkcji map mamy do dyspozycji podobnie działającą apply.

Funkcję apply można użyć do operowania na całym wierszu. Podaje się jako parametr funkcję tzw. callback, która wykonuje stosowne działania. Poniżej przykład zastosowania powyższej metody do obliczenia różnicy wieku piłkarza od średniej dla całej grupy (analogicznie jak wyżej).

Funkcje map i apply nie modyfikują oryginalnej ramki danych, jedynie zwracają już zmodyfikowaną.

Mapowanie pozwala na operacje na danych w ramce lub serii. A co, jeśli chcemy operować tylko na wybranej grupie danych? Musimy do tego zadania użyć funkcji grupujących. Jedną z nich jest, kto mógłby się spodziewać, funkcja o nazwie groupby().

groupby( ) – jak sama nazwa wskazuje, metoda pozwala na otrzymanie tylko wycinka danych z całej ramki. Przykład: ilu piłkarzy jest w określonym wieku? Dodatkowo zastosuję count() aby obliczyć zgrupowane wiersze, co da ostatecznie pożądany wynik.

Powyższych kilka funkcji nie wyczerpuje oczywiście tematu użycia biblioteki Pandas w eksploracji danych, stanowi jedynie początek przygody 🙂

Leave your comment: