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.