Middle
Jak obejść problem przetwarzania dużych plików w Pandas, które nie mieszczą się w pamięci?
sobes.tech AI
Odpowiedź od AI
Aby przetwarzać duże pliki w Pandas, które nie mieszczą się w pamięci operacyjnej, można zastosować kilka podejść:
- Czytanie po częściach (chunking)
Użyj parametru
chunksizew funkcjach odczytu, takich jakpd.read_csv(), aby ładować dane partiami i przetwarzać je oddzielnie:
import pandas as pd
chunksize = 10**6 # liczba wierszy w jednym fragmencie
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# przetwarzanie każdego fragmentu osobno
process(chunk)
-
Użycie bibliotek do pracy z dużymi danymi
- Dask DataFrame — API kompatybilne z Pandas, obsługuje leniwe obliczenia i rozproszoną obróbkę.
- Vaex — do pracy z dużymi zbiorami danych bez ładowania wszystkiego do pamięci.
-
Optymalizacja typów danych Podczas odczytu danych jawnie określ typy kolumn, aby zmniejszyć zużycie pamięci (np. użyj
categorydla kolumn tekstowych z powtarzającymi się wartościami). -
Użycie bazy danych lub formatów obsługujących ładowanie częściowe Wczytuj dane do bazy danych (np. SQLite) i wykonuj zapytania partiami.
Łącząc odczyt po częściach i optymalizację typów, można efektywnie pracować z dużymi plikami w Pandas.