Praca „Duże dane” odbywa się za pomocą pand

Próbowałem rozwiązać problem na to pytanie przez wiele miesięcy podczas nauki pand. Używam SAS do codziennej pracy i świetnie nadaje się do obsługi poza centrum. Jednak SAS jest okropny jako oprogramowanie z wielu innych powodów.

Pewnego dnia mam nadzieję, że zastąpię moje użycie SAS pythonami i pandami, ale obecnie brakuje dużego przepływu pracy dla dużych zbiorów danych. Nie mówię o „dużych danych”, które wymagają sieci rozproszonej, ale raczej o plikach zbyt dużych, aby zmieścić się w pamięci, ale wystarczająco małych, aby zmieścić się na dysku twardym.

Moją pierwszą myślą jest użycieHDFStore do przechowywania dużych zestawów danych na dysku i pobierania tylko tych części, które są potrzebne do ram danych do analizy. Inni wspominali MongoDB jako łatwiejszą w użyciu alternatywę. Moje pytanie brzmi:

Jakie są najlepsze praktyki w realizacji następujących zadań:

Ładowanie płaskich plików do trwałej struktury bazy danych na dyskuSprawdzanie tej bazy danych w celu pobrania danych do struktury danych pandAktualizacja bazy danych po manipulowaniu fragmentami w pandach

Prawdziwe przykłady byłyby bardzo mile widziane, zwłaszcza od każdego, kto używa pand na „dużych danych”.

Edytuj - przykład tego, jak chciałbym, aby to działało:

Iteracyjnie zaimportuj duży plik płaski i zapisz go w trwałej strukturze bazy danych na dysku. Pliki te są zazwyczaj zbyt duże, aby zmieścić się w pamięci.Aby korzystać z Pand, chciałbym odczytać podzbiory tych danych (zwykle tylko kilka kolumn na raz), które mogą zmieścić się w pamięci.Tworzyłbym nowe kolumny, wykonując różne operacje na wybranych kolumnach.Następnie musiałbym dołączyć te nowe kolumny do struktury bazy danych.

Próbuję znaleźć najlepszy sposób wykonywania tych kroków. Czytanie linków dotyczących pand i pytables wydaje się, że dołączenie nowej kolumny może być problemem.

Edytuj - Odpowiadając na pytania Jeffa:

Buduję modele ryzyka kredytowego dla konsumentów. Rodzaje danych obejmują charakterystykę telefonu, numeru SSN i ​​adresu; wartości nieruchomości; obraźliwe informacje, takie jak rejestry kryminalne, bankructwa itp. ... Zestawy danych, z których korzystam codziennie, mają średnio 1000 do 2000 pól średnio mieszanych typów danych: ciągłe, nominalne i porządkowe zmienne zarówno danych liczbowych, jak i znakowych. Rzadko dołączam wiersze, ale wykonuję wiele operacji, które tworzą nowe kolumny.Typowe operacje obejmują łączenie kilku kolumn przy użyciu logiki warunkowej w nową kolumnę złożoną. Na przykład,if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'. Wynikiem tych operacji jest nowa kolumna dla każdego rekordu w moim zbiorze danych.Na koniec chciałbym dołączyć te nowe kolumny do struktury danych na dysku. Powtórzyłbym krok 2, eksplorując dane za pomocą tabel krzyżowych i statystyk opisowych, próbując znaleźć interesujące, intuicyjne relacje z modelem.Typowy plik projektu to zwykle około 1 GB. Pliki są zorganizowane w taki sposób, że wiersz składa się z zapisu danych konsumenckich. Każdy wiersz ma taką samą liczbę kolumn dla każdego rekordu. Tak będzie zawsze.Rzadko zdarza mi się, że podczas tworzenia nowej kolumny podzestawiałem wiersze. Jednak jest dość powszechne, że podzbiorem w wierszach podczas tworzenia raportów lub generowania statystyk opisowych. Na przykład, chciałbym stworzyć prostą częstotliwość dla określonej linii biznesowej, powiedzmy detaliczne karty kredytowe. Aby to zrobić, wybrałbym tylko te rekordy, w których linia biznesowa = sprzedaż detaliczna oprócz kolumn, które chcę zgłosić. Jednak podczas tworzenia nowych kolumn pobierałbym wszystkie wiersze danych i tylko kolumny potrzebne do operacji.Proces modelowania wymaga analizy każdej kolumny, szukania interesujących relacji z pewną zmienną wynikową i tworzenia nowych kolumn złożonych, które opisują te relacje. Kolumny, które badam, są zwykle wykonywane w małych zestawach. Na przykład skoncentruję się na zestawie, powiedzmy, 20 kolumn zajmujących się wartościami nieruchomości i obserwuję, w jaki sposób odnoszą się one do niewywiązywania się z pożyczki. Po zbadaniu i utworzeniu nowych kolumn przechodzę do innej grupy kolumn, na przykład do szkół wyższych, i powtarzam ten proces. Tworzę zmienne kandydujące, które wyjaśniają związek między moimi danymi a niektórymi wynikami. Na samym końcu tego procesu stosuję pewne techniki uczenia się, które tworzą równanie z tych kolumn złożonych.

Rzadko zdarza mi się dodawać wiersze do zestawu danych. Prawie zawsze będę tworzył nowe kolumny (zmienne lub funkcje w statystyce / nauce maszynowej).

questionAnswers(13)

yourAnswerToTheQuestion