Cu Pandas, puneți-vă seturile de date mari pe o dietă de Cedric Soares France School of AI Medium

Seturile de date foarte mari sunt un coșmar pentru oamenii de știință de date. Din fericire, bibliotecile Pandas vă permit să le manipulați optimizându-le greutatea în mod drastic și în cel mai scurt timp.

Orice cercetător în date se confruntă cu seturi de date colosale. Acestea constau adesea în câteva milioane de intrări. Aceste Pandas DataFrames consumă multă memorie și timp de calcul. Prin urmare, este esențial să le optimizăm pentru a le vizualiza, manipula și utiliza în modele de învățare automată. Iată cum să o rezolvi într-un minim de manipulări.

seturile

Demonstrația noastră se bazează pe o parte a setului de date de verificări ale automobilelor efectuate de poliția SUA între 2000 și 2018. Datele compilate de Universitatea din Stranford identifică aproximativ 50.000 de sesiuni de verificare a traficului, clasificate în funcție de stat. Setul de date din statul New York utilizat singur reprezintă aproape 8 milioane de înregistrări.

Descoperirea setului de date

Fișierul nostru CSV cântărește 1 GB. Mai rău, când citiți cu Pandas, DataFrame consumă 6,5 GB de resurse de memorie. Rețineți în acest sens că o recunoaștere preliminară pentru estimarea aprofundată a ocupării memoriei cu funcția pandas.DataFrame.info () necesită transferul parametrului "profund"

La o inspecție mai atentă, DataFrame-ul nostru conține 18 coloane. Majoritatea sunt compuse din șiruri considerate ca obiecte de către Pandas.

Optimizarea acestui tip de date va duce la o economie substanțială a resurselor de memorie.

Câștig considerabil prin clasificarea obiectelor

O modalitate eficientă de a face acest lucru este de a atribui un index fiecărui obiect extrem de redundant. În operațiunile viitoare, panda îl va folosi pe acesta din urmă, care costă mai puțin în spațiu. Metoda este viabilă numai dacă numărul obiectelor unice reprezintă mai mult de 50% din numărul total de obiecte. Care este cazul datelor colectate de Stanford.

De exemplu, coloana „subject_sex” are numai valori „feminin” și „masculin”.

În timpul procesului de optimizare, fiecare coloană este testată într-o buclă pentru a verifica pragul valorilor unice care pot declanșa sau nu indexarea.

Mai jos este o metodă de testare a câștigurilor după fiecare optimizare.

Să-l folosim pentru prima dată pe obiecte clasificate.

Observăm că consumul de memorie a scăzut cu 61%.