Middle
Πώς να παρακάμψετε το πρόβλημα επεξεργασίας μεγάλων αρχείων στο Pandas που δεν χωρούν στη μνήμη;
sobes.tech AI
Απάντηση από AI
Για την επεξεργασία μεγάλων αρχείων σε Pandas που δεν χωρούν στη μνήμη, μπορούν να χρησιμοποιηθούν διάφορες προσεγγίσεις:
- Ανάγνωση σε τμήματα (chunking)
Χρησιμοποιήστε την παράμετρο
chunksizeστις λειτουργίες ανάγνωσης, όπωςpd.read_csv(), για να φορτώνετε δεδομένα σε τμήματα και να τα επεξεργάζεστε ξεχωριστά:
import pandas as pd
chunksize = 10**6 # αριθμός γραμμών ανά τμήμα
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# επεξεργασία κάθε τμήματος ξεχωριστά
process(chunk)
-
Χρήση βιβλιοθηκών για μεγάλα δεδομένα
- Dask DataFrame — API συμβατό με Pandas, υποστηρίζει αργούς υπολογισμούς και κατανεμημένη επεξεργασία.
- Vaex — για εργασία με μεγάλα σύνολα δεδομένων χωρίς να τα φορτώνει όλα στη μνήμη.
-
Βελτιστοποίηση τύπων δεδομένων Κατά την ανάγνωση, ορίστε ρητά τους τύπους των στηλών για να μειώσετε την κατανάλωση μνήμης (π.χ., χρησιμοποιήστε
categoryγια στήλες κειμένου με επαναλαμβανόμενες τιμές). -
Χρήση βάσεων δεδομένων ή φορμάτ που υποστηρίζουν μερική φόρτωση Φορτώστε δεδομένα σε μια βάση δεδομένων (π.χ., SQLite) και εκτελέστε ερωτήματα σε τμήματα.
Με τον συνδυασμό ανάγνωσης σε τμήματα και βελτιστοποίησης τύπων, μπορείτε να εργαστείτε αποτελεσματικά με μεγάλα αρχεία σε Pandas.