Zaawansowane metody analizy i eksploracji danych | I2S | semestr letni 2025/2026
Laboratorium 1 — Wprowadzenie do NumPy i pandas.
1. COVID-19
Wykorzystując dane Our World in Data (OWID), przeprowadź analizę zachorowań na COVID-19.
Wczytaj z pliku dane dotyczące roku 2021. Wykorzystaj kolumny
iso_code, location, date, new_cases, population. Przygotuj
DataFrame z następującymi kolumnami dotyczącymi każdego kraju osobno:
peak_incidence_7d_1M– Maksymalna wartość (pik) średniej ruchomej liczby nowych przypadków (new_cases) z 7 dni na 1 milion mieszkańców (population). Jeżeli w oknie 7 dni występuje chociaż jeden brak danych, to przyjmujemy, że średnia ma wartośćNaN.peak_date– Data wystąpienia piku (jeśli pik występuje w wielu dniach, wybierz najwcześniejszy).median_incidence_7d_1M– Mediana 7-dniowej zachorowalności (ignorujemy braki).sharpness– Ostrość fali zachorowań, to znaczypeak_incidence_7d_1M/median_incidence_7d_1M.
Następnie wypisz:
- top 15 krajów z największym
peak_incidence_7d_1Mposortowanych malejąco, - top 10 krajów z największym
sharpnessposortowanych malejąco.
2. Ruch lotniczy
Wykorzystując dane z biblioteki vega_datasets, przeprowadź analizę
ruchu lotniczego w USA.
Wczytaj dane dotyczące lotnisk i tras:
|
|
Utwórz DataFrame będący połączeniem routes i airports z kolumnami:
origin– identyfikator lotniska początkowego,origin_name– nazwa lotniska początkowego,origin_city– miasto lotniska początkowego,origin_lat– szerokość geograficzna lotniska początkowego,origin_lon– długość geograficzna lotniska początkowego,destination– j.w. dla lotniska docelowego,destination_name,destination_city,destination_lat,destination_lon,count– liczba lotów na danej trasie,distance_km– długość trasy (wykorzystaj wzór na odległość po powierzchni kuli),total_km– łączna liczba kilometrów pokonanych przez samoloty na tej trasie.
Następnie:
- do ramki
airportsdodaj kolumnętotal_countbędącą łączną liczbą lotów wychodzących dla poszczególnych lotnisk, - wypisz top 10 lotnisk względem
total_countposortowaną malejąco, - wypisz top 10 połączeń z największym
total_kmposortowaną malejąco, - wypisz top 10 lotnisk startowych (
origin) o największym udziale lotów krótkodystansowych (co najwyżej 500 km) w całym ruchu wychodzącym, rozpatrując tylko lotniska, dla którychtotal_countjest większy od 80 percentyla rozkładutotal_countdla wszystkich lotnisk startowych.
3. Igrzyska
Wykorzystując dane o igrzyskach olimpijskich, znajdź kraje zdobywające więcej medali niż wynikałoby to z liczby reprezentantów.
Ogranicz dane do igrzysk letnich w latach 2000–2016. Wykorzystaj
kolumny id, noc, year, season, sport, event, medal.
Dla każdej edycji igrzysk i sportu policz globalną ,,stopę medalową’':
rate_sport, równątotal_medals_event_sport / total_athletes_sport, gdzietotal_*to odpowiednio suma medali i liczba wszystkich sportowców w danej edycji i sporcie.
Dla każdego kraju w danej edycji policz:
athletes– liczba unikalnych zawodników,athletes_sport– liczba unikalnych zawodników w danym sporcie,medals_event– liczba medali, tj. liczba unikalnych krotek (year,season,medal,noc),medals_event_sport– liczba medali w danym sporcie,expected_medals– oczekiwana liczba medali po uwzględnieniu stopy medalowe, tj.sum_sport(rate_sport * athletes_sport)ratio– stosunek liczby zdobytych medali do oczekiwanej liczby medali (jeśliexpected_medals <= 0, to przypiszNaN),residual– różnica między zdobytymi a oczekiwanymi medalami.
Wynikiem ma być DataFrame z kolumnami: year, season, noc, athletes, medals_event, expected_medals, ratio, residual.
Wypisz:
- dla każdej edycji igrzysk: top 5 krajów wg
ratio(malejąco), rozpatrując tylko kraje zathletes >= 50orazexpected_medals >= 1, - top 10 najbardziej konsekwentnych liderów
ratio: dla każdegonocpolicz medianęratiopo edycjach (wymagaj udziału we wszystkich 5 edycjach), - dla 10 najbardziej konsekwentnych liderów
ratioich dominującą dyscyplinę: udział medali z jednego najbardziej medalowego sportu, czyli stosunek liczby wszystkich medali w sporcie o największej liczbie medali do liczby wszystkich medali (medale liczymy po wszystkich rozważanych edycjach).