W poprzednich lekcjach nauczyliśmy się tworzyć DataFrame. W tej lekcji zobaczymy jak szybko i łatwo możemy uzyskać podstawowe informacje na jego temat, takie jak liczba rekordów, typy kolumn, informacje o brakujących danych Czy też w drugą stronę – informacje o zduplikowanych rekordach. Zaczynajmy!
Pod lupę weźmiemy zbiór danych lista miast, i na nim wykonamy wszystkie poniższe operacje.
import pandas as pd miasta = pd.read_csv('c:/python/pandas/worldcities.csv')
Szybki podgląd DataFrame
Skoro mamy już masz DataFrame to warto by było do niego zajrzeć. Najprościej jest to zrobić za pomoca funkcji head(), która wyświetli 5 pierwszych rekordów:
miasta.head()
Analogiczny wynik otrzymalibyśmy stosując użycie nawiasów kwadratowych o których będziemy mówić więcej w kolejnych lekcjach:
miasta[0:5] # lub miasta[:5]
Oddzielając liczby znakiem dwukropka ’:’ definiujemy zakres wierszy jakie chcemy aby zostały nam wyświetlone. Zupełnie jak w przypadku listy.
Jeżeli natomiast chcieli byśmy wyświetlić tylko 'ogon’, czyli 5 ostatnich rekordów z naszego DataFrame, to możemy użyć funkcji tail()
miasta.tail()
Również bardzo łatwo możemy wyświetlić interesującą nas kolumnę. Wystarczy że w nawiasach kwadratowych podamy jej nazwę. Dla przykładu:
miasta['city']
Da nam w wyniku:
Aby szybko sprawdzić jakie wartości unikalne przyjmuje kolumna, wystarczy użyć funkcji unique():
miasta.capital.unique()
Jeżeli chcieli byśmy wyświetlić kilka konkretnych, to ich nazwy należy podać w liście:
miasta[['city', 'iso3']]
Alternatywnym sposobem jest podanie nazwy kolumny po kropce, tak jak tutaj:
miasta.city
Jednak w ten sposób możemy odwołać się tylko do jednej kolumny jednocześnie, i to pod warunkiem że jej nazwa nie zawiera spacji.No i jeszcze gwóźdź tego paragrafu, czyli jak wyświetlić konkretne wiersze dla konkretnych kolumn? Oczywiście w poprzez podanie w jednych nawiasach [] zakresu wierszy, a w drugich [] listy kolumn:
miasta[0:5][['city']]
Wielkość, szerokość i typ danych w DataFrame
Potrafimy już zajrzeć do naszego DataFrame. Pora dowiedzieć się jak łatwo możemy uzyskać informację na temat jego formy.
Mamy do dyspozycji 3 podstawowe funkcje które nam to bardzo ułatwią:
- Shape
Zwraca informacje na temat liczby wierszy i liczby kolumn:
miasta.shape
- Info()
Info() oferuje nam informacje na temat kolumn w naszym zbiorze, typu danych jaki jest w nich przechowywany oraz ilości rekordów które zawierają wartości. Czyli innych niż NaN
miasta.info()
- Describe()
I kolejne spojrzenie na kolumny, tym razem zawierające podstawowe statystyki dla kolumn przechowujących liczby.
miasta.describe()
Funkcję describe możemy równiż wykonać na konkretnej kolumny. Nie musimy tego robić dla całego zbioru:
miasta.Population.Describe()
Puste wartości oraz duplikaty
Potrafimy już całkiem sporo. Jednak są jeszcze 2 czynności które praktycznie zawsze wykonuje się na samym początku po utworzeniu DataFrame. Mianowicie sprawdzenie czy nasz zbiór zawiera brakujące lub zduplikowane wartości.
- Brakujące wartości – NaN
Podstawowe informacje na temat brakujących danych mogliśmy otrzymać za pomocą funkcji info(). Jednak mamy do dyspozycji jeszcze inne, bardzo użyteczne funkcje. Pierwszą z nich jest isnull(). Za jej pomocą otrzymamy informację czy dana komórka jest pusta czy nie:
miasta.isnull()
Jeżeli zsumujemy wyniki, to otrzymamy informację o brakujących wartościach dla danej kolumny:
miasta.isnull().sum()
Czyli na odwrót niż w przypadku informacji uzyskiwanych w przypadku funkcji info. Analogicznie mamy do dyspozycji funkcję notnull(), która zsymowana da nam wyniki takie same jak funkcja info():
miasta.notnull().sum()
- Zduplikowane wartości
Na zakończenie tej lekcji, jeszcze jedna rzecz, mianowicie namierzenie zduplikowanych rekordów. Informację o tym czy takie rekordy mamy czy też nie, możemy uzyskać za pomocą funkcji duplicated(), natomiast pozbyć się ich możemy za pomocą funkcji drop_duplicates(). W naszym zbiorze nie ma zduplikowanych rekordów, tak wiec wartość będzie zero, jednak w kolejnych lekcjach już na takie natrafimy.
# sprawdzenie ilości duplikatów miasta.duplicated().sum() # usunięcie duplikatów miasta.drop_duplicates()
Podsumowanie
W poprzednich lekcjach dowiedzieliśmy się jak utworzyć DataFrame w Pandas. W tej, jak wykonać pierwsze, podstawowe operacje zaraz po tym jak DataFrame powstanie – przejrzenie wartości, podstawowe informacje na temat jego rozmiarów oraz typów danych, zakres brakujących danych oraz informacje o zduplikowanych rekordach.
W kolejnych lekcjach dowiemy się więcej o operacjach na wierszach, kolumnach itd, ale zanim tam przejdziemy zapraszam do wykonania poniższych ćwiczeń.
Ćwiczenia
- Należy wydrukować tylko i wyłącznie miasto oraz kraj, dla 10 pierwszych rekordów
- Jakie unikalne wartości zawiera kolumna Capital?
- Dla ilu miast brakuje informacji o ich populacji?
Spis treści Pandas Tutorial / Kurs
- Pandas – Intro
- Pandas – przygotowanie środowiska pracy
- Pandas – tworzenie prostego DataFrame
- Pandas – odczyt i zapis do pliku
- Pandas – podstawowe informacje o DataFrame
- Pandas – indeksy oraz funkcja loc
- Pandas – maski
- Pandas – modyfikacje kolumn
- Pandas – funkcja apply
- Pandas – typy danych
- Pandas – grupowanie z groupby
- Pandas – unstack oraz tabele przestawne
- Pandas – łączenie zbiorów danych
- Pandas – SQL i bazy danych