Skip to content

kvmilos/UW-Python-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paczka Analiz Statystycznych

Projekt indywidualny wykonany w ramach zaliczenia przedmiotu "Narzędzia programistyczne w Pythonie wspierające analizę danych"

Individaul project prepared as part of the 'Tools Supporting Data Analysis in Python' course

Treść polecenia:
Zadanie zaliczeniowe z NYPD
12 XII 2022 Wersja 1.0

Polecenie
Należy napisać w Pythonie program, który:
 ● Pobiera (używając argparse) z wiersza poleceń ścieżki do plików (w formacie csv) z danymi o GDP, populacji i emisji.
 ● Zakłada że są w formacie jaki dziś (choć w przyszłości danych może być więcej, czyli nie można założyć, że program ma działać dokładnie na tych plikach, które są dołączone do zadania, natomiast należy założyć, że format będzie zachowany) i je wczytuje.
 ● Czyści te dane (w tym punkcie nie ma wiele do zrobienia w odniesieniu do podanych źródeł danych).
 ● Wybiera tylko te lata, które są we wszystkich tabelach. Uwaga: chodzi o lata faktycznie występujące w tych tabelach, także w przyszłości, tzn. nie można w docelowej wersji na sztywno założyć (zaszyć w kodzie), że są to dane za lata 1960-2014), choć w pierwszych wersjach rozwiązania to może być wygodne.
 ● Scala dane po krajach i latach.
 ● Przeprowadza analizy (za pomocą bibliotek numpy lub panadas):
  ○ Które kraje w poszczególnych latach z danymi, emitują najwięcej CO2 w przeliczeniu na mieszkańca. To znaczy generuje posortowaną po latach tabelkę pięcioma krajami o największej emisji na osobę (z podaną nazwą kraju, emisją na osobę i całkowitą emisją.
  ○ Które kraje w poszczególnych latach z danymi mają największy przychód mieszkańca. To znaczy generuje posortowaną po latach tabelkę pięcioma krajami o największym dochodzie na mieszkańca (z podaną nazwą kraju, dochodem na mieszkańca i całkowitym dochodem).
  ○ Które kraje (w przeliczeniu na mieszkańca) najbardziej zmniejszyły i zwiększyły przez ost. 10 lat (z danych) emisję CO2.

Dodatkowe wymagania
 ● Program powinien być podzielony na (co najmniej) dwa pythonowe moduły (nie muszą być duże) jeden zawierający bibliotekę operacji analizujących dane zgodnie z treścią zadania i drugi wywołujący te operacje.
 ● Oczekujemy, że źródła programu będą w repozytorium gita, z co najmniej pięcioma (5) uaktualnieniami (ang. commit),
 ● Oczekujemy złożenia (i przyjęcia) jednej prośby o dołączenie kodu (ang. pull requesta)?
 ● Testów jednostkowych kodu (tam gdzie to ma sens).
 ● Sprofilowania działania programu (należy dołączyć do rozwiązania plik z wynikiem profilowania, nie ma obowiązku przeprowadzania samych optymalizacji).
 ● Program powinien pozwalać zadawać w wierszu poleceń zakres lat (parametry -start rok i -koniec rok), wówczas badanych okres jest dodatkowo skracany do do podanego przedziału. Jeśli przedział po tej operacji okaże się pusty, należy zgłosić (i gdzieś w programie obsłużyć) wyjątek.
 ● Program może mieć postać zwykłego programu lub Jupyterowego notatnika.
 ● Program należy dostarczyć w postaci pakietu instalowalnego poleceniem pip (w postaci pip install ./ścieżka/do_pakietu).
 ● Jeśli program wykryje jakieś niezgodności w danych (np. brak jakiegoś Państwa w niektórych danych), to powinien wypisać czytelny komunikat i działać dalej.

W programie oceniamy:
 ● Podział na moduły, funkcje, wprowadzenie parametrów,
 ● Jakość kodu (nazwy zmiennych i funkcji, komentarze).
 ● Sugerujemy stosowanie narzędzi automatycznie sprawdzających (część) zaleceń dotyczących czytelności kodu. Takie narzędzia mogą Państwo mieć wbudowane w Państwa IDE (np. W Pycharma) lub mogą Państwo skorzystać z zewnętrznych narzędzi (pylint, flake, ...),
 ● Warto również przeczytać zalecenia z Przewodnika po stylu kodu w Pythonie PEP-8.
 ● Pokrycie kodu testami.
 ● Użycie bibliotek przedstawianych podczas zajęć.
 ● Dostarczone pliki (np. wynik profilowania).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published