Przejdź do głównej zawartości

Pliki płaskie w Pythonie - jak importować CSV, TSV i TXT? [Praktyczny przewodnik dla początkujących]

 


Pliki płaskie (ang. flat files) - co musisz o nich wiedzieć?

Choć nie przewidywałam żadnych wpisów przed tym,  jak moje wrażenia z podejścia do certyfikatu na DataCampie, to życie miało swoje plany. Mam małe opóźnenia w przygotowaniach, ale i tak jestem z siebie dumna, że posuwam się do przodu. Powoli, lecz systematycznie i to pomimo, że w życiu osobistym przeżywam właśnie trudniejszy czas. Uznałam, że lepsza mała powtórka, niż absolutnie nic.  Dlatego w dzisiejszym wpisie zajmiemy się tematem plików płaskich i sposobami na zaimportowanie ich. 

Spis treści:

Czym są pliki płaskie i jakie są ich rodzaje?

Jak wczytać plik tekstowy?

Jak zaimportować plik, gdy jego zawartość to same liczby?

Jak zaimportować dane w formacie tabelarycznym zawierające różne typy danych?

Ciekawostki dla początkujących

Parę słów o tym typie plików

Pliki płaskie (ang. flat files) - są tak ważne nie tylko dlatego, że jest to standard do przechowywania danych numerycznych, ale także często ten format danych jest potrzebny do innych pakietów Pythona, np. scikit-learn. Przez "plik płaski" rozumiemy dwuwymiarową bazę danych tekstowych, przechowującą dane w formacie tabelarycznym (złożone z rekordów) bez powiązań strukturalnych, co stanowi przeciwieństwo do relacyjnych baz danych. Dane te mogą zawierać same liczby lub mieszane typy danych, mogą (lecz nie muszą) mieć nagłówek. Może to być też sam tekst. Wyróżniamy pliki płaskie takie jak:

CSV (ang. Comma Separated Values), w których ogranicznikiem jest przecinek

TSV (ogranicznikiem jest tabulator - w kodzie zapisujemy go jako "\t")

PSV (ogranicznikiem jest "|")

TXT (tekst)

Wczytywanie pliku tekstowego










Możemy wczytać plik także w sposób niewymagający "zamknięcia pliku", z użyciem menedżera kontekstu with. Dzięki niemu możemy wykonywać polecenia przy otwartym pliku. Jest to dobra praktyka przy wczytywaniu plików. Jak to zrobić?






Importowanie pliku płaskiego, gdy zawiera on same liczby

Możemy wtedy do importowania użyć biblioteki Pythona NumPy i zaimportować plik jako tablicę (ang. array). Jest to o tyle dobra opcja, że są takie funkcje pakietu NumPy, które są w stanie bardzo wydajnie zaimportować dane w postaci tablic, dlatego jeśli można (tzn. dane na to pozwalają), to warto skorzystać z tej opcji. 
Możemy wtedy także użyć biblioteki pandas, jednak częściej korzysta się z NumPy do importowania danych numerycznych, a pandas do danych zawierających mieszane typy danych. 
Te funkcje NumPy używane do importowania to loadtxt() oraz genfromtxt(). Pokażę to na przykładzie pierwszej funkcji: 









Importowanie danych w formacie tabelarycznym zawierające różne typy danych (najczęściej CSV)










Ciekawostka dla początkujących

Jeśli jestescie na początku drogi do zostania mistrzem danych, pewnie nie słyszeliście o PEP20, nazywanym także Zen of Python, czyli  20 aforyzmów dotyczących pisania kodu (z czego tylko 19 zostało spisanych). Jedna z nich nawiązuje do dzisiejszego tematu posta - jest to zasada piąta, czyli:


Flat is better than nested.


Warto rzucić okiem także na pozostałe, np. tutaj: The Zen of Python


Jest to pierwszy post z całej serii o wczytywaniu plików, bo myślę, że temat został tutaj dopiero "delikatnie poruszony". Jednak to, co tutaj opisałam to już całkiem solidne podstawy do tego, by zacząć pracę na real-world data. 


* Zdjęcie z początku posta pochodzi z Pixabay a jego autorem jest Pexels





Komentarze

Popularne posty z tego bloga

10+ najczęstszych błędów w analizie danych (i jak ich uniknąć przed certyfikatem DataCamp)

  Gdy życie krzyżuje plany  (i co z tego wynika) Jestem na etapie kończenia zaplanowanych powtórek. Wszystko idzie trochę wolniej, niż zakładałam, bo życie (ech, znowu ono) pokrzyżowało mi plany. Mam teraz coś znacznie ważniejszego, z czym muszę się zmierzyć, niż jakikolwiek certyfikat. W tym krótkim poście chciałabym pochylić się nad częstymi błędami, które zdarzają się osobom przygotowującym się do certyfikatu, do którego ja też podchodzę. Pisałam o nim tutaj →  Certyfikat DataCamp: Python Data Associate- jak się do niego przygotowuję? . Skąd wzięłam te błędy? Najpierw przedstawię błędy wymieniane przez autorów materiałów na DataCampie. Potem przejdę przez takie, które często pojawiają się w innych źródłach (np. tu: laboratorium-mozliwosci.pl , dataconversion.ie ). Później dorzucę coś od siebie - czyli błędy, które sama popełniłam. A na koniec to, co podpowiedział mi jeszcze ChatGPT (jako uzupełnienie listy). Z mojej perspektywy - osoby, która przygotowuje się do egza...

Excel od podstaw – jak skutecznie się go nauczyć? Mój sposób.

Obraz  Mango Matter  z  Pixabay Zaczynam od Excela     Zgodnie z wynikami analizy z poprzedniego wpisu, moja nauka zaczyna się od Excela.  Plan nauki zakładał pierwotnie opanowanie tego programu w takim stopniu żeby móc w nim swobodnie pracować. Tylko, że to stwierdzenie nic tak naprawdę nie znaczy.  Dlatego w tym poście staram się trochę usystematyzować, co uważam za znajomość Excela na poziomie zerowym, podstawowym, średnim i zaawansowanym. W tej całej nauce, którą tak planuję nie chcę dać się przytłoczyć mnogością materiałów. Nie chcę dać się ponieść perfekcjonizmowi. Postaram się mieć na uwadze, że nawet, jeśli wiemy dużo, to nie wszystko. Tak też będzie ze mną i Excelem. I to jest zupełnie ok.  Mój plan nauki      Postanowiłam wypunktować umiejętności, które można nabyć, a w miarę nauki zobaczę, ile z tej listy tak naprawdę powinnam zrealizować i na którym etapie poczuję się pewniej z tym programem. Jako, że uwielbiam cał...

SQL w 2 godziny dziennie - plan, motywacja, materiały

  Przyszedł czas na ustalenie nowych celów. Mój wybór padł na powtórki i rozszerzanie wiedzy z SQL. Opracowałam już prosty plan, którego zamierzam się trzymać, rozplanowałam sobie jaką część tego planu zamierzam wykonać w poszczególne dni. Jestem podekscytowana. Jak zawsze, gdy zaczynam coś nowego.  Małe sprostowanie: SQL nie jest dla mnie ZUPEŁNIE nowy, uczyłam się go już kiedyś, ale to było dawno i mam potrzebę go odświeżyć.  Dlaczego akurat SQL? Bo to narzędzie, które mimo upływu lat nie traci na aktualności. W świecie danych SQL wciąż jest podstawą  - niezależnie od tego, czy pracujesz w analizie danych, nauce o danych, czy w IT szerzej. Ja sama coraz częściej trafiam na sytuacje, w których jego znajomość bardzo by mi się przydała - przy analizie wyników, raportach, czy integracji danych z różnych źródeł. Poza tym lubię jego logiczność i strukturę - jest coś satysfakcjonującego w dobrze napisanym zapytaniu, które robi dokładnie to, co powinno. Czuję, że warto poś...