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ć?
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
Prześlij komentarz