First steps with Excel & Python [PL] PART3

Stackoverflow to piękne narzędzie wsparte przez ludzi ciekawych wiedzy, ciekawych cudzych problemów i możliwe, że z dużą dozą nadwyżek czasu.

Niestety ta ostatnia rzecz to nie jest prawda. Znam kilka osób, które mają dość chodliwe profile na tym portalu. Nie mają nadwyżek czasu, choć nadal z dużym zapałem pomagają innym naprawić ich aplikację, rozwiązać problem czy nauczyć się czegokolwiek o czymkolwiek, co tyczy się kodowania. Tak samo było ze mną przy okazji pisania ostatniego posta.

Chciałem nauczyć się i od razu podzielić z Wami metodą, dzięki której moglibyśmy z naszego pliku MOCK_DATA.csv sprawdzić kilka imion jednocześnie, zliczyć użytkowników z zadaną domeną i zrobić kilka innych rzeczy. Na tamten moment, mimo kombinowania, nie udało mi się znaleźć samodzielnie odpowiedzi na to pytanie (choć nie zrobiłem najwidoczniej porządnego reasearchu lub po prostu nie wiedziałem czego szukam).

Odpowiedź pojawiła się od użytkownika GDN, którego profil jest ukryty, więc nie podzielę się szczegółami. Bardzo serdecznie polecam Ci założenie konta na tym serwisie, możesz to zrobić tu. Jedna z gorszych rzeczy jakie mogą się przydarzyć osobie uczącej się samodzielnie nowego tematu, który nie został gdzieś wprost nam podany na kursie lub sami w genialny sposób na coś nie wpadliśmy (a zazwyczaj na prawdę sam na to nie wpadniesz!), jest to żeby nie uzyskać odpowiedzi nigdzie. Szukajmy zatem odpowiedzi- między innymi na stackoverflow.

O czym pogadamy dziś?

Ostatnio bardzo sprawnie znalazłem osoby w naszym pliku wyszukując je z imienia. W dzisiejszym poście, zgodnie z zapowiedzią:

  • znajdźmy kilka osób, np. poszukajmy Rhei i Belindy. Za pomocą poniższego kodu będziesz w stanie znaleźć je obie:

dane[(dane.imie == “Rhea”) | (dane.imie == “Belinda”)]


W powyższym ćwiczeniu zwróć uwagę, że każde kolejno dodane przez nas kryterium wyszukiwania powinno być ujęte w oddzielnym nawiasie.

  • znajdźmy konkretne osoby, z konkretnymi imionami mającymi adresy mailowe w jednej domenie. Nad tym głowiłem się ostatnio najbardziej i właśnie stackoverlow przyszedł mi z pomocą, zobacz zatem wynik moich poszukiwań poniżej. Zdefiniowałem zatem 4 domeny, które chciałbym zobaczyć:

search_string1 = “@naiker.biz”
search_string2 = “iatim.tech”
search_string3 = “@twace.org”
search_string4 = “@mafthy.com”

daneTylkoDlaDomen =
dane[(dane.email.str.extract(“(@.)”)[0] == search_string1)
| (dane.email.str.extract(“(@.)”)[0] == search_string2)
| (dane.email.str.extract(“(@.)”)[0] == search_string3)
| (dane.email.str.extract(“(@.)”)[0] == search_string4)]

daneTylkoDlaDomen.sample(5)

Jakie to piękne! Zwróć proszę uwagę, że aby nie wyświetlać ich wszystkich nadal korzystam z funkcji .sample(5), która pokazuje tylko fragment zakresu danych, który udało nam się wyciągnąć z naszego zbioru danych.

  • w tym poście chciałbym Ci również pokazać jak usunąć kolumny w naszym zbiorze danych, zrobisz to za pomocą poniższego kodu, aby usunąć jedną pojedynczą kolumnę:

daneTylkoDlaDomen = daneTylkoDlaDomen.drop (“nazwisko”, axis=1)

Ale co zrobić, aby usunąć więcej niż jedną kolumnę? Spokojnie, wystarczy rozszerzyć nasz kod o dodatkowe kolumny do usunięcia, zobacz poniżej:

daneTylkoDlaDomen = daneTylkoDlaDomen.drop ([“imie”, “plec”, “ID”, “IP”], axis=1)

No i zostaliśmy z długą listą adresów mailowych. Teraz wystarczy napisać bota, który roześle do wszystkich jedną najważniejszą informację, którą chciałbym Wam dziś przekazać! Nie pokażę Ci dziś jak zrobić, abyś nigdy więcej nie musiał pisać “=WYSZUKAJ.PIONOWO”.

Już się tłumaczę. Okazało się, że nie ma jednej uniwersalnej drogi na zrobienie tego! Jest wiele ścieżek za pomocą której możemy dodać sobie kolumnę do naszego zbioru danych, która po zadanym kryterium wyszuka wartości z innej tabeli. Ja bardzo lubię nazywać to mappingiem- w każdym moim modelu excelowskim mam na końcu pliku arkusze: ‘MAPP_1’, ‘MAPP_2’.

Jak zatem ugryźć temat? Przede wszystkim na luzie, przecież dopiero co uczymy się wspólnie ogarniać o co w ogóle chodzi. Na pewno trzeba trochę poczytać, tu polecę Ci głównie jeden artykuł, który na pewno poprowadzi nas w dobrym kierunku: Joining DataFrames in Pandas.
Kolejny post będzie zatem w pełni oddany analizie, jak uwolnić się od excelowego jarzma i móc żyć jak człowiek, wolny od myślenia o implementacji dynamicznie zmieniających się tabelach czy indexach w funkcji =WYSZUKAJ.PIONOWO- choć sama ich implementacja cieszy oko i napawa dumą (może warto zrobić też nurt excelowych sztuczek? Dajcie proszę znać!). Mimo wszystko, nie wiem jak Ty, ale ja jestem już tym znudzony- wymyślaniem coraz bardziej wymyślnych excelowych funkcji, które można zastąpić kilkoma linijkami czytelnego kodu. W mojej pracy Analityka powoli przestaje być ważne jak doszedłem do danego rezultatu, najważniejsze jest, że raport lub jakiś wykres na podstawie danych został położony na biurko zgodnie z zamówieniem. Nie zawsze oczywiście się to udaję, mimo dużego zaangażowania.

Już dziś zapraszam Cię zatem do przyszłości- kolejnego posta dedykowanego wspomnianemu rozwiązaniu problemu różnego typu wyszukiwania wartości!

Miłej środy!

Leave a Reply

Your email address will not be published. Required fields are marked *