Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membahagikan Sejuta Baris DataFrame dengan Cekap kepada DataFrame yang Lebih Kecil oleh Peserta?

Bagaimana untuk Membahagikan Sejuta Baris DataFrame dengan Cekap kepada DataFrame yang Lebih Kecil oleh Peserta?

Susan Sarandon
Susan Sarandonasal
2024-12-03 01:31:11323semak imbas

How to Efficiently Split a Million-Row DataFrame into Smaller DataFrames by Participant?

Memisahkan DataFrame kepada Berbilang DataFrames

Apabila berurusan dengan set data yang besar, mungkin perlu untuk membahagikannya kepada bahagian yang lebih kecil untuk pemprosesan yang cekap. Ini boleh dicapai dengan membahagikan DataFrame berdasarkan pengecam unik, menghasilkan berbilang DataFrame yang lebih kecil. Dalam kes ini, matlamatnya adalah untuk membahagikan DataFrame 1 juta baris kepada 60 DataFrame yang lebih kecil, satu untuk setiap peserta yang dikenal pasti oleh pembolehubah 'nama'.

Malangnya, kod Python yang disediakan untuk memisahkan DataFrame gagal menyelesaikan tugasan. Daripada berjalan selama-lamanya, pendekatan alternatif disyorkan menggunakan keupayaan menghiris dan mengindeks Panda. Berikut ialah kod yang diubah suai:

import pandas as pd

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

# Create a dictionary to store the DataFrames for each participant
participant_data = {name: pd.DataFrame() for name in unique_names}

# Populate the dictionary with sliced DataFrames for each participant
for name in unique_names:
    participant_data[name] = data[data['name'] == name]

Kod ini memotong DataFrame dengan cekap berdasarkan lajur 'nama', mencipta DataFrames berasingan untuk setiap peserta sambil mengelakkan perangkap kod sebelumnya.

Atas ialah kandungan terperinci Bagaimana untuk Membahagikan Sejuta Baris DataFrame dengan Cekap kepada DataFrame yang Lebih Kecil oleh 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