Przepływy pracy „duże dane” przy użyciu pand

| | | | | | | | |

Od wielu miesięcy staram się znaleźć odpowiedź na to pytanie, ucząc się pand. Używam SAS do mojej codziennej pracy i jest świetny ze względu na jego niezbędną obsługę. Jednak SAS jest okropny jako oprogramowanie z wielu innych powodów.

Pewnego dnia Mam nadzieję, że zastąpię korzystanie z SAS pythonem i pandami, ale obecnie brakuje mi przepływu pracy poza rdzeniem dla dużych zestawów danych.Nie mówię o „dużych danych”, które wymagają sieci rozproszonej, ale raczej o plikach zbyt dużych, aby mieści się w pamięci, ale jest wystarczająco mały, aby zmieścić się na dysku twardym.

Moją pierwszą myślą jest użycie HDFStore do przechowywania dużych zbiorów danych na dysku i przeciągania do ramek danych tylko tych fragmentów, których potrzebuję Do analizy. Inni wymienili MongoDB jako łatwiejszą w użyciu alternatywę. Moje pytanie brzmi:

Jakie są najlepsze przepływy pracy pozwalające na:

  1. Ładowanie płaskich plików do trwałej struktury bazy danych na dysku
  2. Przesyłanie zapytań do tej bazy danych w celu pobrania danych do struktury danych pand
  3. Aktualizacja bazy danych po manipulowaniu elementami w pandach

Przykłady z rzeczywistego świata byłyby bardzo mile widziane , zwłaszcza od każdego, kto używa pand do „dużych danych”.

Edytuj — przykład tego, jak chciałbym, żeby to działało:

  1. Iteracyjnie importuj duże płaskie pliku i przechowuj go w trwałej strukturze bazy danych na dysku. Te pliki są zazwyczaj zbyt duże, aby zmieścić się w pamięci.
  2. Aby używać Pand, chciałbym odczytać podzbiory tych danych (zwykle tylko kilka kolumn na raz), które mogą zmieścić się w pamięci.
  3. Utworzyłbym nowe kolumny wykonując różne operacje na wybranych kolumnach.
  4. Następnie musiałbym dodać te nowe kolumny do struktury bazy danych.

Staram się znaleźć najlepszy sposób wykonania tych kroków. Czytając linki o pandach i pytablech wydaje się, że dopisanie nowej rubryki może być problemem.

Edytuj - Odpowiadając konkretnie na pytania Jeffa:

  1. Buduję konsumenta modele ryzyka kredytowego Rodzaje danych obejmują charakterystykę telefonu, numeru SSN i adresu, wartości nieruchomości, informacje uwłaczające, takie jak rejestry karne, bankructwa itp. Zbiory danych, z których korzystam na co dzień, zawierają średnio od 1000 do 2000 pól mieszanych typów danych: zmienne ciągłe, nominalne i porządkowe danych liczbowych i znakowych. Rzadko dołączam wiersze, ale wykonuję wiele operacji, które tworzą nowe kolumny.
  2. Typowe operacje obejmują łączenie kilku kolumn za pomocą logiki warunkowej w nowy, złożony kolumna. Na przykład if zmienna1 > 2 then nowa zmienna = „A” elif zmienna2 = 4 then nowa zmienna = „B”. Wynikiem tych operacji jest nowa kolumna dla każdego rekordu w moim zbiorze danych.
  3. Na koniec chciałbym dołączyć te nowe kolumny do struktury danych na dysku. d powtórz krok 2, eksplorując dane za pomocą tabel krzyżowych i statystyk opisowych, próbując znaleźć interesujące, intuicyjne relacje z modelem.
  4. Typowy plik projektu ma zwykle około 1 GB. Pliki są zorganizowane w taki sposób, że wiersz składa się z rekordu danych konsumenta. Każdy wiersz ma taką samą liczbę kolumn dla każdego rekordu. Tak będzie zawsze.
  5. Dość rzadko zdarza mi się tworzyć podzbiory według wierszy podczas tworzenia nowej kolumny. Jednak dość często zdarza mi się tworzyć podzbiory według wierszy podczas tworzenia raportów lub generowania opisowych Statystyka. Na przykład mogę chcieć utworzyć prostą częstotliwość dla określonej linii biznesowej, na przykład detalicznych kart kredytowych. Aby to zrobić, wybrałbym tylko te rekordy, w których linia biznesowa = detaliczna oprócz tych, które chcę raportować. Jednak tworząc nowe kolumny, wyciągałbym wszystkie wiersze danych i tylko te kolumny, których potrzebuję do operacji.
  6. Proces modelowania wymaga, abym przeanalizował każdą kolumnę, szukał interesujących relacji z jakąś zmienną wynikową, i utwórz nowe kolumny złożone, które opisują te relacje. Kolumny, które eksploruję, są zwykle wykonywane w małych zestawach. Na przykład skupię się na zestawie powiedzmy 20 kolumn zajmujących się tylko wartościami nieruchomości i obserwuję, jak odnoszą się one do niespłacania pożyczki. Po ich zbadaniu i stworzeniu nowych kolumn, przechodzę do innej grupy kolumn, powiedzmy o edukacji w college'u, i powtarzam proces. To, co robię, to tworzenie zmiennych kandydujących, które wyjaśniają związek między moimi danymi a pewnym wynikiem. Na samym końcu tego procesu stosuję kilka technik uczenia się, które tworzą równanie z tych kolumn złożonych.

Rzadko zdarza mi się dodawać wiersze do zbioru danych. Prawie zawsze będę tworzyć nowe kolumny (zmienne lub funkcje w statystyce/języku uczenia maszynowego).

Przepływy pracy „duże dane” przy użyciu pand __del__: Questions

Przepływy pracy „duże dane” przy użyciu pand _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method