Heim >Backend-Entwicklung >Python-Tutorial >So verarbeiten Sie große Datenrahmen in Pandas effizient: Teilen Sie es auf!

So verarbeiten Sie große Datenrahmen in Pandas effizient: Teilen Sie es auf!

Susan Sarandon
Susan SarandonOriginal
2024-10-27 07:57:03595Durchsuche

How to Efficiently Process Large DataFrames in Pandas: Chunk It Up!

Pandas – Große Datenrahmen in Stücke schneiden

Beim Versuch, übergroße Datenrahmen zu verarbeiten, ist der gefürchtete Speicherfehler ein häufiges Hindernis. Eine effektive Lösung besteht darin, den Datenrahmen in kleinere, überschaubare Abschnitte zu unterteilen. Diese Strategie reduziert nicht nur den Speicherverbrauch, sondern ermöglicht auch eine effiziente Verarbeitung.

Um dies zu erreichen, können wir entweder das Listenverständnis oder die NumPy-Funktion array_split nutzen.

Listenverständnis

<code class="python">n = 200000  # Chunk row size
list_df = [df[i:i+n] for i in range(0, df.shape[0], n)]</code>

NumPy array_split

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

Einzelne Blöcke können dann wie folgt abgerufen werden:

<code class="python">list_df[0]
list_df[1]
...</code>

Um die Blöcke wieder zu einem einzigen Datenrahmen zusammenzusetzen, verwenden Sie pd.concat:

<code class="python"># Example: Concatenating by chunks
rejoined_df = pd.concat(list_df)</code>

Aufteilen nach AcctName

Um den Datenrahmen nach AcctName-Werten aufzuteilen, verwenden Sie die Groupby-Methode:

<code class="python">list_df = []

for n, g in df.groupby('AcctName'):
    list_df.append(g)</code>

Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie große Datenrahmen in Pandas effizient: Teilen Sie es auf!. 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