Sobes.tech
Middle

Kako zaobići problem obrade velikih fajlova u Pandas-u koji se ne uklapaju u memoriju?

sobes.tech АИ

Одговор од АИ

Za obradu velikih fajlova u Pandas-u koji ne staju u memoriju, može se koristiti nekoliko pristupa:

  1. Čitanje u delovima (chunking) Koristite parametar chunksize u funkcijama za čitanje, kao što je pd.read_csv(), da učitavate podatke u delovima i obrađujete ih odvojeno:
import pandas as pd

chunksize = 10**6  # broj redova u jednom delu
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
    # obrada svakog dela posebno
    process(chunk)
  1. Korišćenje biblioteka za rad sa velikim skupovima podataka

    • Dask DataFrame — API kompatibilan sa Pandas-om, podržava lenjive kalkulacije i distribuiranu obradu.
    • Vaex — za rad sa velikim skupovima podataka bez učitavanja celog u memoriju.
  2. Optimizacija tipova podataka Pri čitanju, eksplicitno odredite tipove kolona da biste smanjili potrošnju memorije (na primer, koristite category za kolone sa tekstom i ponovljenim vrednostima).

  3. Korišćenje baza podataka ili formata sa podrškom za delimično učitavanje Učitavajte podatke u bazu podataka (npr. SQLite) i vršite upite u delovima.

Kombinovanjem čitanja u delovima i optimizacije tipova, možete efikasno raditi sa velikim fajlovima u Pandas-u.