Sobes.tech
Middle

როგორ ავიცილოთ თავიდან Pandas-ში დიდი ფაილების დამუშავების პრობლემა, რომლებიც მეხსიერებაში ვერ ეტევიან?

sobes.tech AI

პასუხი AI-სგან

Pandas-да დიდი ფაილების დამუშავება, რომლებიც მეხსიერებაში ვერ ჯდება, შესაძლებელია რამდენიმე მიდგომით:

  1. ტეხლეტით წაკითხვა (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)
  1. დიდი მონაცემებით მუშაობის ბიბლიოთეკების გამოყენება

    • Dask DataFrame — API, რომელიც თავსებადი არის Pandas-თან, მაგრამ მხარს უჭერს მორიგეობით გამოთვლებს და განაწილებულ დამუშავებას.
    • Vaex — საშუალებას გაძლევთ იმუშაოთ დიდი მონაცემთა ნაკრებით, ყოველგვარი მეხსიერების დატვირთვის გარეშე.
  2. მონაცემთა ტიპების ოპტიმიზაცია მონაცემების წაკითხვისას, გამოაცხადეთ სვეტების ტიპები, რათა შეამციროთ მეხსიერების მოხმარება (მაგ., გამოიყენეთ category ტექსტურ სვეტებზე, რომლებიც განმეორებით მნიშვნელობებს შეიცავს).

  3. მონაცემთა ბაზების ან ნაწილობრივ დატვირთვის მხარდაჭერით ფორმატების გამოყენება მონაცემები ჩაამატეთ მონაცემთა ბაზაში (მაგ., SQLite) და შეასრულეთ შეკითხვები ნაწილებად.

ამ გზით, ნაწილობრივ წაკითხვასა და ტიპების ოპტიმიზაციას შორის კომბინაციით, შეგიძლიათ ეფექტურად იმუშაოთ დიდ ფაილებთან Pandas-ში.