Sobes.tech
Middle

Ako obísť problém spracovania veľkých súborov v Pandas, ktoré sa nezmestia do pamäte?

sobes.tech AI

Odpoveď od AI

Na spracovanie veľkých súborov v Pandas, ktoré sa nezmestia do pamäte, je možné použiť niekoľko prístupov:

  1. Čítanie po častiach (chunking) Použite parameter chunksize vo funkciách na čítanie, ako je pd.read_csv(), na načítanie dát po častiach a ich spracovanie samostatne:
import pandas as pd

chunksize = 10**6  # počet riadkov v jednom kuse
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
    # spracovanie každého kusu zvlášť
    process(chunk)
  1. Použitie knižníc na prácu s veľkými dátami

    • Dask DataFrame — API kompatibilné s Pandas, podporuje lenivé výpočty a distribuované spracovanie.
    • Vaex — umožňuje pracovať s veľkými dátami bez načítania všetkých do pamäte.
  2. Optimalizácia typov dát Pri načítaní špecifikujte explicitne typy stĺpcov, aby ste znížili spotrebu pamäte (napríklad category pre reťazcové stĺpce s opakujúcimi sa hodnotami).

  3. Použitie databáz alebo formátov s podporou čiastočného načítania Načítajte dáta do databázy (napríklad SQLite) a vykonávajte dotazy po častiach.

Kombináciou čítania po častiach a optimalizácie typov môžete efektívne pracovať s veľkými súbormi v Pandas.