Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Panda Boleh Mengendalikan Set Data Besar yang Melebihi Memori Tersedia?

Bagaimanakah Panda Boleh Mengendalikan Set Data Besar yang Melebihi Memori Tersedia?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 19:49:11650semak imbas

How Can Pandas Handle Large Datasets That Exceed Available Memory?

Aliran Kerja Data Besar Menggunakan Panda

Apabila berurusan dengan set data terlalu besar untuk dimuatkan dalam ingatan, aliran kerja luar teras adalah penting. Dalam konteks ini, kami meneroka amalan terbaik untuk mengendalikan data besar menggunakan panda.

Untuk mengurus set data besar dengan cekap, pertimbangkan aliran kerja amalan terbaik berikut:

  1. Memuatkan Fail Rata ke dalam Struktur Pangkalan Data Dalam Cakera:

    • Gunakan HDFStore untuk menyimpan set data yang besar pada cakera dalam format berstruktur.
    • Tentukan pemetaan kumpulan untuk menyusun jadual anda berdasarkan kumpulan medan.
    • Tambahkan data pada setiap jadual dalam kumpulan, memastikan lajur data ditakrifkan untuk subset baris pantas.
  2. Menyiasat Pangkalan Data untuk Dapatkan Data ke dalam Struktur Data Pandas:

    • Pilih kumpulan medan tertentu untuk mendapatkan data dengan cekap.
    • Gunakan fungsi untuk memilih dan menggabungkan data daripada berbilang jadual dengan lancar.
    • Buat indeks pada lajur data untuk subset baris yang lebih baik prestasi.
  3. Mengemas kini Pangkalan Data Selepas Memanipulasi Potongan dalam Panda:

    • Buat kumpulan baharu untuk menyimpan lajur baharu yang dibuat daripada manipulasi data.
    • Pastikan lajur_data ditakrifkan dengan betul dalam baharu kumpulan.
    • Dayakan pemampatan untuk meminimumkan ruang storan.

Contoh:

import pandas as pd

# Group mappings for logical field grouping
group_map = {
    "A": {"fields": ["field_1", "field_2"], "dc": ["field_1"]},
    "B": {"fields": ["field_10"], "dc": ["field_10"]},
    ...
}

# Iterate over flat files and append data to tables
for file in files:
    chunk = pd.read_table(file, chunksize=50000)
    for group, info in group_map.items():
        frame = chunk.reindex(columns=info["fields"], copy=False)
        store.append(group, frame, data_columns=info["dc"])

# Retrieve specific columns
selected_columns = ["field_1", "field_10"]
group_1 = "A"
group_2 = "B"
data = store.select_as_multiple([group_1, group_2], columns=selected_columns)

Atas ialah kandungan terperinci Bagaimanakah Panda Boleh Mengendalikan Set Data Besar yang Melebihi Memori Tersedia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn