Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membahagikan DataFrame Panda Besar dengan Cekap kepada DataFrame yang Lebih Kecil Berdasarkan ID Peserta?

Bagaimanakah Saya Boleh Membahagikan DataFrame Panda Besar dengan Cekap kepada DataFrame yang Lebih Kecil Berdasarkan ID Peserta?

DDD
DDDasal
2024-12-17 11:09:25705semak imbas

How Can I Efficiently Split a Large Pandas DataFrame into Smaller DataFrames Based on Participant IDs?

Memisahkan Bingkai Data Besar kepada Bingkai Data Lebih Kecil

Masalah:

Anda mempunyai bingkai data yang besar dengan lebih 1 juta rekod mewakili data daripada eksperimen dengan 60 peserta. Setiap peserta mempunyai kod unik yang disimpan dalam pembolehubah 'nama' bingkai data. Anda berhasrat untuk membahagikan bingkai data kepada 60 bingkai data yang lebih kecil, satu untuk setiap peserta.

Percubaan Asal:

Pendekatan awal anda untuk mencapai ini melalui fungsi tersuai yang dipanggil splitframe tidak 't menghasilkan keputusan dalam masa sejam pelaksanaan. Fungsi ini bertujuan untuk menggelungkan melalui bingkai data, menambahkan baris secara berulang pada bingkai data yang lebih kecil dan menambahkannya pada senarai sehingga peserta baharu dikenal pasti, pada ketika itu ia akan mencipta bingkai data baharu untuk peserta seterusnya.

Penyelesaian menggunakan Penghirisan Bingkai Data:

Daripada memisahkan bingkai data secara berulang, anda boleh menggunakan pendekatan yang lebih cekap menggunakan penghirisan bingkai data. Begini cara anda boleh melakukannya:

import pandas as pd

# Create a list of unique participant names
unique_names = data['name'].unique()

# Initialize a dictionary to store the split dataframes
data_dict = {}

# Iterate over the unique names
for name in unique_names:
    # Create a new dataframe by slicing the original dataframe
    data_dict[name] = data[data['name'] == name]

Keputusan:

Kod ini akan mencipta kamus yang dipanggil data_dict. Setiap kunci dalam kamus mewakili nama peserta, dan nilai yang sepadan ialah bingkai data panda yang mengandungi semua data untuk peserta tertentu itu. Anda boleh mengakses bingkai data setiap peserta dengan menggunakan sintaks berikut:

participant_data = data_dict['ParticipantName']

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan DataFrame Panda Besar dengan Cekap kepada DataFrame yang Lebih Kecil Berdasarkan ID Peserta?. 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