Jak zrobić swój pierwszy projekt w Pythonie? Jak zacząć swój własny projekt analityczny?

06.11.2022

W rzeczywistości “projekt pythonto nic innego jak wykonanie ćwiczenia w którym zobaczysz, jak wykonać prostą analize w pythonie. 

Na początku wybierzemy środowisko pracy dla Ciebie, by następnie stworzyć pierwszy wstępny projekt, w którym to wcielimy się w manadżera restauracji chcącego zoptymalizować swoje działania.

Spis treści

Jakie środowisko wybrać pracując w pythonie

Jak to mówią najtrudniejszy pierwszy krok. Tak jest również z Pythonem, dlatego bo trzeba zainstalować niezbędne środowisko w którym będziesz pracował. Wybór środowiska zależy od Ciebie. Jak chcesz zobaczyć jak to zrobić, to odsyłam Cię do  drugiej części artykułu.

Wstęp do analizy w pythonie - stwórz projekt w pythonie

To co może zniechęcać do Excela, to fakt, że nie ma danych przykładowych na których można by było pracować na starcie w trakcie nauki. Plusem pracy w pythonie jest to, że jest wiele wbudowanych baz, które na etapie uczenia, są niezwykle pomocne. Skorzystamy z jednej z nich. To o czym warto już teraz wiedzieć to, że życie nie jest zbyt proste i proces uczenie wygląda mniej więcej tak: 

Jak zacząć prosty projekt w pythonie

Zabawę w pythonie zaczniemy od właśnie takiej przykładowej bazy napiwków w pewnej restauracji.

Cały poniższy projekt jest dostępny na kagglu tutaj. Zachęcam do edytowania projektu we własnym zakresie, zmieniania kolumn użytych w wizualizacjach, a no i oczywiście komentowania! 

Jak i po co ściągnąć podstawowe biblioteki w pythonie

Python posiada kilkanaście wbudowanych już bibliotek, które na etapie początkowym projektu należy zaimportować. W rzeczywistości robimy to po to, aby skorzystać z gotowych rozwiązań, w konsekwencji nie musimy robić na własną rękę. 

Warto zwrócić uwagę na skróty. 

Przede wszystkim będziemy się odwoływać do nich w projektach (to te zaznaczone na czerwono na przykład: pd, sns). Skróty te, to krótkie nazwy zdefiniowane przez użytkowników. Jednak już teraz warto wspomnieć, że z reguły każdy stara się przestrzegać i używać tych samych skrótów, które dotyczą nazw bibliotek. Robimy to przede wszystkim po to aby inni z łatwością zrozumieli nasz projekt. 

Znak # służy do wpisania własnego komentarza pomocnego w procesie budowania kodu. Program kolokwialnie mówiąc, go nie czyta. Te fragmenty będą pomocne tylko i wyłącznie dla Ciebie.

Jak zaimportować dane w pythonie z pliku csv - projekt python

Ściągając dane do dzisiejszego ćwiczenia ze środowiska Jupyter Notebook możemy użyć zapisanych danych w bibliotece seaborn (linia pierwsza). 

W zależności od wyboru środowiska w którym pracujesz wybierasz odpowiednią linijkę kodu (nie liczę fragmentów z #)

Dane po ściągnięciu przechowywane są w pamięci, także w żaden sposób odwoływanie się do nich nie spowoduję zmian w danych wejściowych. Jest to ogromna zaleta odwoływania się do tabel w pythonie. Zaczytaną bazę bedziemy wywoływać nadaną nazwą własną, w tym wypadku “tips

W środowisku Kaggle dane musimy sobie wyszukać i bezpośrednio dodać do naszej bazy. Chyba, że korzystacie z mojego projektu, wtedy nie musicie. 😉 Całość możemy wykonać korzystać z przycisku w prawym górnym rogu poprzez naciśnięcie “K” i wyszukujemy przykładowej bazy, która nas interesuję w tym wypadku jest to: “A Waiter’s tips“. Możemy też użyć danych bezpośrednio od nas na dysku, czego przykład zaprezentowałem w linii od trzeciej do piątej.

Podstawowe błędy w pythonie, jak sobie z nimi radzić

Python jest bardzo nieelastyczny na błędy. Także uważajcie na wielkość liter i na literówki. Polskie znaki również nie są zbyt lubiane. Poniżej przykładowe błędy, gdzie pomyliłem wielkość liter lub dodałem ekstra znak na końcu.

Przegląd danych - projekt python

O ile w Excelu po wykonaniu pewnych kroków ciężko jest nam wrócić do początku projektu, o tyle w pythonie mam wrażenie, że analizy są bardziej uporządkowane. Wszystko zmierza od A do B, od B do C i tak dalej. W momencie jeżeli powineła by nam się noga, zawsze możemy powrócić do wcześniejszych kroków i coś dodać lub poprawić. Jest to ogromna korzyść w tym porównaniu chociażby do Excela.

Większość projektów w pythonie przybiera podobną kolejność o czym wspominałem podczas tworzenia projektów w PQ, czyli: 

Tak samo sprawy się mają w pythonie. Rozpoczynając od przeglądu danych.

Poleceniem nazwa_własna.head(5) wywołujemy zaczytaną naszą tabelę. Jest to jedno z pierwszych linijek kodu do wywołania w każdym projekcie, po to aby podejrzeć co kryję się w naszej bazie!

Jak widzimy nasze dane zawierają kilka kolumn:

  1. total_bill – kwota rachunku
  2. tip – kwota napiwku
  3. sex – płeć
  4. smoker – palacz czy nie
  5. day – dzień tygodnia
  6. time – pora posiłku
  7. size – liczba obsłużonych klientów

podstawowe skróty klawiszowe w pythonie - projekt python

Wywołanie polecenia może się odbywać przy pomocy wyboru linii, która nas interesuję i kliknięcia na górze ikony “play”. Możemy również wygodniej zacząć korzystać ze skrótów klawiszowych. Dwa najczęściej stosowane to: 

CTRL + ENTER- działa tak samo jak play

ALT + ENTER – wywołanie polecenia i dodanie nowej linii kodu pod spodem.

Dwa podstawowe polecenia do weryfikacji danych w pythonie

Rolą analityka jest poznanie zakresu danych i wartości jakie dane dotyczą. Pomoce w tym są dwa, być może dużo niewnoszące polecenia ale bardzo pomocne na etapie wdrożenia do projektów są to:

tips.info()

Używając kodu .info() możemy sprawdzić z jakimi danymi mamy do czynienia. Czy są to dane typu tekstowego (object), czy dane wartościowe (float lub int). Możemy mieć do czynienia również na przykład z datami (date) lub polami przyjmującymi wartości prawda/fałsz (boolen). W zależności od projektu.

Polecenie to pozwala również sprawdzić ilość wypełnienia danych. W tym wypadku wszystkie kolumny zawierają 244 wiersze i nie posiadają niewypełnionych pól. Sprawdzenie wypełnienie danych jest to bardzo ważny krok, pozwalający stwierdzić z których kolumn możemy skorzystać, a z których nie. Kolumny, które są ledwie wypełnione tracą na wartości. Z reguły w przypadku braków danych musimy zarządzić całą sytuacją albo wypełnić brakujące pola albo zrezygnować całkowicie z linii, które takie braki posiadają. W tym przypadku nie mamy takich problemów, także tego rodzaju problemy rozwiążemy przy kolejnym projekcie.

tips.describe() - projekt python

Fragment kodu .describe() pozwala zapoznać się z danymi wartościowymi. Dzięki temu możemy poznać w jakim zakresie znajdują się nasze dane. Możemy na szybko sprawdzić średnią, odchylenie standardowe, wartości minimalne, mediane czy wartości maksymalne. Kolejny dobry wstęp do analizy.

Sortowanie, tworzenie nowych kolumn, grupowanie i agregacja danych w pythonie

Wykonamy parę czynności, które są równie błahe z poziomu Excela. Jednak na etapie budowania naszych nowych umiejętności warto je znać. 

Sortowanie w pythonie przy użyciu sort_values

Jak stworzyć nową kolumnę w pythonie

Dodamy dwie nowe kolumny:

  1. Kwota całkowita rachunku
  2. Procent napiwku w całym rachunku

Jak pogrupować dane i je zagregować w pythonie

Chcąc wyciągnąć średnią po płci możemy skorzystać z polecenia groupby.

Grupowanie średniej po płci i porze lunchu wyglądałoby tak: 

Jak stworzyć kolumnę kumulacji w pythonie

Czasami przydałoby nam się szersze spojrzenie. Poniżej wykonano tworzenie nowej kolumny kumulacji wartości i na tej podstawie utworzono pomocniczą tabelę, aby to wszystko zaprezentować.

Nasze dane z piątku są jakoś dziwnie ubogie, nieprawdaż? Przypominam, że jest są to dane przykładowe. Nie można od nich za dużo oczekiwać. 😉 

Czas na wizualizacje - podstawowe wykresy w pythonie

Tak jak już wspomniałem python oferuję szereg ciekawych rozwiązań do wizualiacji danych. Dzisiaj zaprezentuję tylko najprostsze z nich.

 

Stwórz wykres punktowy w Pythonie przy użyciu wykresu Relplot

W podobny sposób tworzymy wykresy poprzez wywołanie właściwej biblioteki. Będzie to znana już biblioteka seaborn – w skrócie sns, później odwołujemy się również do typu wykresu. W tym przypadku będzie to relplot, a następnie w nawiasie definiujemy najpierw tabelę danych, a później odpowiednio oś X i Y.

Dodatkowo możemy zdefiniować różne rzeczy na wykresach. Jeżeli chcemy zaprezentować na przykład jakieś kategorie, to definiujemy je poprzez człon “hue”. Korzystając z tej opcji dodaliśmy wizualizacje czy nasi klienci są palaczami czy nie. Możemy również zdefiniować kolor i wiele innych. 

Aby zilustrować korzyści z pythona, wyobraźcie sobie jak zmieniając tylko wprowadzone nazwy nagłówków możecie zmieniać bieżącą wizualizacje w pythonie. A teraz wyobraźcie sobie podobną czynność wykonywaną z poziomu Excela? 

Należy jednak pamiętać, że czasami co za dużo, to nie zdrowo. 😉 

Wykres słupkowy - projekt python

Python oferuję szereg wykresów. Naprawdę brakło by mi życia aby pokazać Ci choć cząstkę z nich. Dlatego najłatwiej odeślę Cię do pełnej dokumentacji jednej z użytych dzisiaj biblioteki, a mianowicie biblioteki Seaborn. Dzięki temu złapiesz szerszy obraz tego, ile można zrobić w pythonieLink do biblioteki tutaj.

 

Tego typu zabawy mogą nas prowadzić do różnych wniosków. Jednak ze względu na ograniczoną liczbę rekordów i fakt, że dane dotyczą tylko 4 dni pozwolę sobie zakończyć zabawę z tą bazą danych.Poniżej znajduję się już wybór środowiska pracy. Jeżeli chcesz przejść do podsumowania tego, co się dzisiaj nauczyłeś zapraszam na koniec artykułu.

Wybór środowiska pracy - projekt python

Jeżeli chodzi o wybór środowiska pracy, to do wyboru mamy:

Opcje z instalacją środowiska dla pythona bezpośrednio na komputerze

Jak zainstalować środowisko Jupyter notebook na swoim komputerze - Opcja 1

Chyba najczęściej używane środowisko we wszystkich szkoleniach i webinarach. Wymaga zainstalowania Anacondy, która jest konsolą niezbędną do wdrażania pakietów w Pythonie lub w języku R. Należy ją zainstalować na swoim komputerze.

Link do strony, gdzie możesz bezpłatnie ściągnąć Anacondę. https://www.anaconda.com/products/distribution

Po zainstalowaniu, wyszukujemy i otwieramy Anaconda Prompt. Ukaże nam się czarny ekran. Nie bójmy się go. Z niego bardzo szybko przeskoczymy do środowiska docelowego – Jupyter Notebook.

 

Jupyter notebook - krok 1

Jupyter notebook - krok 2

Na czarnym ekranie musimy wpisać tylko i wyłącznie “jupyter notebook“.

W tym momencie wszystkie nasze projekty będą tworzone w poniższej lokalizacji. Jeżeli chcielibyśmy aby w naszych projektach panował porządek, możemy od razu zdefiniować lokalizacje, gdzie te projekty mają być przechowywane. Robimy to wpisując “cd” i docelową ścieżkę (patrz zdjęcie), by następnie wpisać “jupyter notebook“.

 

Jupyter notebook - krok 3

Tworzymy nowy projekt. Jak na zdjęciu.

 

Brawo przeszedłeś przez proces instalacji środowiska Jupyter Notebook! Czas wrócić do projektu. Jeżeli chcesz wrócić do początku projektu kliknij tutaj.

Opcje bez instalacji środowiska bezpośrednio na komputerze

Kaggle - Opcja 1

Wystarczy się zalogować na https://www.kaggle.com/

Możemy założyć konto lub zalogować się za pomocą konta googla, facebooka.

Następnie rozwinąć “plusa” i przejść do zakładki “New Notebook”.

 

Google Colaboratory - Opcja 2

Coraz częściej stosowana opcja. Wygoda i wszystko dostępne z dowolnego miejsca. 

https://colab.research.google.com/

Podsumowanie - pierwszy projekt

Dzisiaj nauczyłeś się jak zainstalować i przejść do środowiska pythonowego. Dodatkowo wykonaliśmy pierwszy bardzo podstawowy projekt w którym utworzyliśmy nowe kolumny, pogrupowaliśmy i posortowaliśmy nasze dane i stworzyliśmy pierwsze podstawowe wizualizacje. Cały projekt jest dostępny na moim kagglu w troszkę szerszej formie. Także jeżeli chciałbyś przejrzeć dane to zapraszam tutaj.

Warto zwrócić uwagę na fazy projektu. Od zapoznania się z danymi, po stopniową obróbkę. Następnie przechodzimy do stopniowego grupowania i wizualizacji, by nastepnie przechodzić do coraz szerszego obrazu. Takie możliwości daje python. Dodatkowo należy pamiętać o dalszych możliwościach, ale to może dasz mi szanse pokazać kiedy indziej. 😉 

Wraz z biegiem czasu będziemy rozbudowywać nasze umiejętności pythonowe.

Jeżeli podoba Ci się, to co robię to zapraszam do komentowania lub likowania posta na linkedin lub facebook’u.

Pozdrawiam,

Mariusz