Dostęp do konkretnej komórki
Załóżmy, że mamy następującą strukturę DataFrame:
Dostęp do konkretnej wartości polega na podaniu wartości kolumny, a następnie wiersza:
df['salt']['Jan']
W przypadku, jeśli kolumny są nazywane bez użycia spacji i znaków specjalnych, wówczas możliwa jest następująca notacja:
df.eggs['Mar']
Najwłaściwszą i polecaną metodą jest używanie tzw. akcesorów, czyli metod loc _i iloc. Loc _wykorzystuje nazwy kolumn i nazwę indeksu wiersza. Iloc wykorzystuje numery wierszy i kolumn. Odwrotnie niż we wzorcu z wykorzystaniem dwóch par nawiasów, w przypadku korzystania z akcesorów jako pierwszy podaje się indeks wiersza, a następnie kolumny:
df.loc['May', 'spam']
df.iloc[4,2]
Dostęp do wybranych kolumn
df[['eggs','salt']]
Dostęp do wybranych wierszy (slicing)
df['eggs'][1:4]
Zwraca nam wiersze od 2 do czwartego. W naszym przykładzie będą to wartości 110, 221, 77.
Używając akcesora _loc _możemy mieć dostęp zarówno do wskazanego zakresu wierszy jak i kolumn:
df.loc[:,'eggs':'salt']
Akcesor loc i iloc pozwalają również na przekazanie listy wierszy lub kolumn, które nas interesują:
df.loc['Jan':'May', ['eggs','spam']]
Akcesor loc i iloc przy zastosowaniu operatora zakresu ":" pozwalają również na zmianę kolejności kolumn lub wierszy:
df.loc['May':'Jan':-1, :]
Filtrowanie
Filtrowanie możliwe jest poprzez wykorzystanie obiektu typu Series, który ma tyle samo wierszy co obiekt DataFrame i jest typu Boolean. Wówczas filtrowane są te wiersze, które odpowiadają wartością prawdziwym w przekazanej serii.
df[df.spam > 50]
Możliwe jest łączenie warunków sortowania:
df[(df.spam > 50) | (df.spam < 20)]