Pandas

Pandas
Naukowcy lub specjaliści danych często muszą obsługiwać zestawy danych, których rozmiar jest znacznie większy niż pamięć ich lokalnego systemu. Trudno jest wymyślić, jak skutecznie zarządzać pamięcią, jednocześnie umożliwiając najbardziej efektywne wykorzystanie danych. Zajmując się dużym blokiem danych, które nie będą pasować do pamięci, możesz podzielić dane na mniejsze części za pomocą opcji Pandas. Wybierając tę ​​opcję, powstaje obiekt iteratora, który można użyć do iteracji przez różne fragmenty i przeprowadzania filtrowania lub analizy w taki sam sposób, jak podczas ładowania całego zestawu danych.

Jak załadować duże dane za pomocą rozmiaru kawałka pand

Pandy to potężne i przyjazne dla użytkownika narzędzie open source do analizy danych zbudowanych na Pythonie, które umożliwia import i wizualizację danych w różnych formatach, takich jak .TSV, .CSV, .db i .pliki txt. Tylko ".Pliki CSV ”będą używane w następujących przykładach, chociaż technika jest taka sama dla innych formatów plików. Funkcja Read_CSV () zostanie użyta do odczytu plików CSV.

Parametry:

filepath_or_buffertr: Można użyć prawidłowej ścieżki łańcuchowej. Również adres URL może znajdować się w ciągu. Dopuszczalne schematy URL to FTP, S3, HTTP, GS i plik. Powinien istnieć host dla adresów URL plików. Oto przykład pliku lokalnego: plik:/localhost/ścieżka/do/tabela.CSV.

Iteratorbool: Zwraca obiekt FileReader Text Iterate za pośrednictwem pliku lub do pobierania kawałków za pomocą get_chunk ().

fragment: Akceptuje int; jest to opcjonalny parametr. W przypadku iteracji zwraca obiekt Filereader Text.

Argument fragmentu funkcji read_csv () jest tym, w którym interesuje nas ten artykuł. Technicznie, Chunksize odnosi się do liczby rzędów na sekundę odczytanych z pliku z pliku. Możemy powiedzieć, że pierwsze 100 wierszy zostanie załadowanych przez pandy, jeśli fragment zostanie określony jako 100. Zwrócony obiekt to Fireader Text, który musi zostać iterowany do pobrania danych.

Przykład nr 1: ładuj dane za pomocą funkcji read_csv () bez fragmentów

W tym przykładzie pobramy zestaw danych z .Rozszerzenie pliku CSV z dowolnej strony internetowej Open-Source. Możesz pobrać wymagany zestaw danych z kilku stron internetowych w Internecie. Aby załadować plik do pandy, najpierw zaimportujemy bibliotekę pandas. Po zaimportowaniu pandy użyjemy funkcji read_csv () do załadowania pliku w naszym bieżącym środowisku. Plik CSV jest importowany do formatu DataFrame za pomocą funkcji pand_csv ().

Zauważysz, że wraz z panami zaimportowaliśmy również bibliotekę pprint, ponieważ struktury danych można wydrukować w zrozumiały, atrakcyjny sposób za pomocą modułu Python Pprint. Po zaimportowaniu modułów załadowaliśmy nasze .plik CSV, umieszczając nazwę pliku wraz z rozszerzeniem pliku wewnątrz PD.funkcja read_csv (). Aby wyświetlić nasze kolumny w ramce danych, użyliśmy PD.Atrybut kolumn. Te etykiety kolumnowe pozwalają nam uzyskać dostęp do elementówFrame Data i wykonać manipulację danymi. „Pandy. Ramka danych.Kolumny ”Atrybut służy do uzyskania poszczególnych etykiet kolumn z DataFrame. .Atrybut kształtu może być używany do zobaczenia liczby kolumn i wierszy w naszej ramce danych.

Wartość „90836” to całkowita liczba wierszy w naszej ramce danych, jak widzieliśmy powyżej, w naszym DataFrame jest dziesięć kolumn, tj.mi., „Oceny”.

Przykład nr 2: Załaduj dużą ilość danych za pomocą Chunksize w funkcji Read_CSV ()

W tym przykładzie pobramy kolejny zestaw danych z Internetu. Ta sama funkcja Read_CSV () zostanie użyta do załadowania pliku. Ale tym razem określamy parametr „fragment” w funkcji. Przed użyciem naszej funkcji Read_CSV () zaimportujemy biblioteki pandy i pprint.

Zobaczmy całkowitą liczbę kolumn i wierszy w naszym pliku zestawu danych bez użycia parametru Chunksize.

Czytamy podany zestaw danych w poprzednim przykładzie i przedstawiliśmy jego szczegóły. Rząd i kolumny zwrócone przez atrybut „kształtu” to odpowiednio 5704247 i 5. Korzystając z atrybutu „Info”, pokazujemy również szczegóły dotyczące wierszy i kolumn zestawu danych.

Jak widzimy, ten zestaw danych ma 5704247 wierszy, a przetwarzanie masywnych zestawów danych wykorzystuje wiele pamięci RAM komputera. Parametr fragmentu w tych okolicznościach można wykorzystać do zapisywania naszych zasobów.

Obiekt TextFileReader jest zwracany za pomocą funkcji CHUNKSIZE WEWNĄTRZ. Gdy parametr fragmentu jest przekazywany do funkcji read_csv (), tworzony jest czytnik TextFilereader. Oryginalny plik można odczytać w kawałkach za pomocą tego obiektu przypominającego plik. Wewnętrznie pętla tworzy iteratory dla takich obiektów, stosując metodę iter (). Otrzymujemy iterator, gdy stosujemy argument fragmentu. Aby uzyskać wartości, możemy iterować w tym obiekcie. Zestaw danych jest odczytywany do kawałków danych z określonymi wierszami w poprzednim przykładzie, ponieważ argument fragmentu dostarczył wartości. Parametr Chunksize został określony do 1000000 dla naszego zestawu danych, co spowodowało sześć iteratorów.

Przykład nr 3: Kolejny przykład parametru fragmentu

Jak omówiono wcześniej, Chunksize jest parametrem używanym w Python często do odczytu dużych plików lub zestawów danych. Kawałka dzieli dane w czasie rzeczywistym podczas czytania na mniejsze sekcje znane jako kawałki, co zwiększa ogólną skuteczność programu; Jeśli czytamy .plik CSV bez tego parametru.

Pandy są często używane do przechowywania dużej ilości danych; Umożliwiają łatwą czytelność i dostęp do danych w krótkim czasie. Podany plik (oceny.CSV) ma dane z 1048575 pacjentów w ramach 1048575 i 4 kolumn. Gdy ten plik zostanie odczytany przez program bez żadnego konkretnego parametru, przetworzenie tak dużej ilości informacji zajmie dużo czasu. Kiedy napotykamy ten typ dużych danych, używamy parametrów takich jak kawałki. Parametr Parametrów używa iteratorów do iteracji nad określonym pojemnikiem, takim jak lista, i może być sprzężony z różnymi pętlami.

W poprzednim przykładzie struktura danych pandas jest używana do odczytu i przechowywania informacji, a także stosuje się fragmenty, co itera nad obiektem, aby uzyskać wartości. Odczytuje nasz podany plik na podsekcjach danych (fragmenty). Specjalnie dla danego zestawu danych, dla fragmentu 250000 określono cztery iteratory. Wartość zwrócona po odczytaniu obiektu nie jest ramką danych, ale parser pand, i.mi., Pandy.io.Parsers.TextFileReader. Są one odpowiedzialne za poprzeczkę nad obiektem i wartości wynikające z końca. Należy zwrócić uwagę na to, że numer kolumny jest taki sam dla każdego iteratora, który wskazuje, że parametr „Chunksize” używa tylko liczby wierszy, a nie kolumny, podczas tworzenia iteratora.

Wniosek

W tym samouczku widzieliśmy, że pamięć ich lokalnej maszyny nie może pomieścić wielkości zestawów danych. Dlatego, czytając ogromne zestawy danych, stosujemy argument, aby rozbić zestaw danych na kawałki danych. Teraz, po przeczytaniu tego samouczka, możesz sam użyć argumentu fragmentu. Wdrożyliśmy kilka przykładów, aby nauczyć cię, jak podzielić swój zestaw danych z .rozszerzenie pliku CSV na małe kawałki.