Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man einen großen Pandas-DataFrame nach AcctName effizient in Stücke schneiden?

Wie kann man einen großen Pandas-DataFrame nach AcctName effizient in Stücke schneiden?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 22:04:28362Durchsuche

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

Pandas – Slice Large Dataframe into Chunks by AcctName

Bei der Datenanalyse kann die Arbeit mit großen Datenrahmen oft zu Speicherfehlern führen. Um dieses Problem zu lösen, kann die Aufteilung des Datenrahmens in kleinere, überschaubare Teile eine wertvolle Strategie sein. In diesem Artikel wird untersucht, wie Sie einen großen Datenrahmen basierend auf einer bestimmten Spalte, insbesondere AcctName, effizient in Blöcke aufteilen können.

Sie können Listenverständnis verwenden, um diese Aufteilung zu erreichen:

<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>

Alternativ können Sie dies tun Nutzen Sie die array_split-Funktion von NumPy:

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

Dieser Ansatz erstellt eine Liste von Blöcken, auf die Sie einzeln zugreifen können.

Um den ursprünglichen Datenrahmen wieder zusammenzusetzen, verwenden Sie einfach pd.concat:

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

Durch den Einsatz dieser Techniken können Sie Ihren großen Datenrahmen effektiv in kleinere Teile aufteilen, die erforderlichen Transformationen anwenden und die resultierenden Daten dann wieder zu einem einzigen Datenrahmen zusammensetzen. Dieser Ansatz kann die Speichernutzung erheblich reduzieren und die Effizienz Ihrer Datenverarbeitungsvorgänge verbessern.

Das obige ist der detaillierte Inhalt vonWie kann man einen großen Pandas-DataFrame nach AcctName effizient in Stücke schneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn