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
Lepaskan: 2024-12-17 11:09:25
asal
704 orang telah melayarinya

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]
Salin selepas log masuk

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']
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan