Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghiris DataFrame Panda Besar dengan Cekap kepada Potongan dengan AcctName?

Bagaimana untuk Menghiris DataFrame Panda Besar dengan Cekap kepada Potongan dengan AcctName?

Barbara Streisand
Barbara Streisandasal
2024-10-25 22:04:28362semak imbas

How to Efficiently Slice a Large Pandas DataFrame into Chunks by AcctName?

Panda - Potong Bingkai Data Besar kepada Ketulan dengan AcctName

Dalam analisis data, bekerja dengan bingkai data yang besar selalunya boleh menyebabkan ralat memori. Untuk menangani perkara ini, membahagikan bingkai data kepada bahagian yang lebih kecil dan boleh diurus boleh menjadi strategi yang berharga. Artikel ini meneroka cara untuk menghiris bingkai data yang besar menjadi kepingan dengan cekap berdasarkan lajur tertentu, khususnya AcctName.

Anda boleh menggunakan pemahaman senarai untuk mencapai penghirisan ini:

<code class="python">import numpy as np
import pandas as pd

# Define the chunk size
n = 200,000

# Create a list to store the chunks
list_df = []

# Extract unique AcctName values
AcctNames = df['AcctName'].unique()

# Create a dictionary of dataframes for each AcctName
DataFrameDict = {acct: pd.DataFrame for acct in AcctNames}

# Split the dataframe into chunks by AcctName
for acct in DataFrameDict.keys():
    DataFrameDict[acct] = df[df['AcctName'] == acct]
    
    # Apply your function to the chunk
    trans_times_2(DataFrameDict[acct])
    list_df.append(DataFrameDict[acct])
    
# Rejoin the chunks into a single dataframe
rejoined_df = pd.concat(list_df)</code>

Sebagai alternatif, anda boleh memanfaatkan fungsi array_split NumPy:

<code class="python">list_df = np.array_split(df, math.ceil(len(df) / n))</code>

Pendekatan ini mencipta senarai ketulan, yang boleh anda akses secara individu.

Untuk memasang semula rangka data asal, hanya gunakan pd.concat:

<code class="python">rejoined_df = pd.concat(list_df)</code>

Dengan menggunakan teknik ini, anda boleh memotong bingkai data yang besar anda menjadi kepingan yang lebih kecil dengan berkesan, menggunakan transformasi yang diperlukan dan kemudian menyusun semula data yang terhasil menjadi satu bingkai data. Pendekatan ini boleh mengurangkan penggunaan memori dengan ketara dan meningkatkan kecekapan operasi pemprosesan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Menghiris DataFrame Panda Besar dengan Cekap kepada Potongan dengan AcctName?. 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