Heim  >  Artikel  >  Backend-Entwicklung  >  Wie teile ich einen großen Pandas-Datenrahmen in mehrere Teile auf, wenn die Anzahl der Zeilen nicht gleichmäßig teilbar ist?

Wie teile ich einen großen Pandas-Datenrahmen in mehrere Teile auf, wenn die Anzahl der Zeilen nicht gleichmäßig teilbar ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 04:13:30715Durchsuche

How to Split a Large Pandas Dataframe into Multiple Parts When the Number of Rows is Not Evenly Divisible?

Aufteilen großer Pandas-Datenrahmen in mehrere Teile

Bei der Arbeit mit riesigen Datensätzen ist es oft notwendig, diese in kleinere, überschaubare Teile aufzuteilen. Dies kann die Leistung verbessern, die Speichernutzung erhöhen und die Parallelverarbeitung erleichtern. In diesem Artikel gehen wir auf ein Problem ein, das beim Versuch, einen großen Pandas-Datenrahmen mit np.split() zu teilen, aufgetreten ist.

Verstehen des Problems

Der bereitgestellte Code Snippet verwendete np.split(), um einen Datenrahmen in vier Untergruppen zu unterteilen. Aufgrund einer ungleichen Division kam es jedoch zu einem ValueError. Dieser Fehler tritt auf, wenn die Anzahl der Elemente im Datenrahmen nicht gleichmäßig durch die gewünschte Anzahl von Teilungen teilbar ist.

Lösung: Verwendung von np.array_split()

Zur Behebung Für diese Herausforderung verwenden wir np.array_split(), eine vielseitigere Alternative zu np.split(). Wie in der Dokumentation angegeben, ermöglicht array_split() eine ungleiche Teilung, wodurch es für Situationen wie unsere geeignet ist.

Implementierung

Hier ist ein Python-Codebeispiel mit np. array_split(), um den Datenrahmen in vier Teile aufzuteilen:

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

# Create a sample dataframe
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                    'C': np.random.randn(8),
                    'D': np.random.randn(8)})

# Split the dataframe into four groups using array_split
groups = np.array_split(df, 3)

# Print the split groups
for group in groups:
    print(group)</code>

Dadurch wird der Datenrahmen effektiv in drei ungefähr gleich große Gruppen aufgeteilt. Auf jede Gruppe kann unabhängig zugegriffen und sie verarbeitet werden, wodurch die anfängliche Herausforderung der ungleichen Aufteilung gelöst wird.

Das obige ist der detaillierte Inhalt vonWie teile ich einen großen Pandas-Datenrahmen in mehrere Teile auf, wenn die Anzahl der Zeilen nicht gleichmäßig teilbar ist?. 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