Heim  >  Artikel  >  Backend-Entwicklung  >  Wie teile ich einen großen Pandas DataFrame in gleiche Teile auf, wenn die Anzahl der Zeilen nicht durch die Anzahl der Teile teilbar ist?

Wie teile ich einen großen Pandas DataFrame in gleiche Teile auf, wenn die Anzahl der Zeilen nicht durch die Anzahl der Teile teilbar ist?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 03:29:30846Durchsuche

How do I split a large Pandas DataFrame into equal parts when the number of rows is not divisible by the number of parts?

Aufteilen großer Pandas-Datenrahmen in gleiche Teile

Bei der Arbeit mit großen Datensätzen in Pandas ist es oft notwendig, diese in kleinere Teile aufzuteilen Verarbeitung oder Analyse. Eine häufig verwendete Methode zum Aufteilen von Datenrahmen ist np.split, die die Daten entlang einer bestimmten Achse in eine gleiche Anzahl von Arrays verteilt. Der Versuch, eine ungerade Anzahl von Zeilen mit dieser Methode zu teilen, kann jedoch zu einem ValueError führen.

Alternativer Ansatz mit np.array_split

Um dieses Problem zu lösen, sollten Sie die Verwendung in Betracht ziehen stattdessen np.array_split. Diese Funktion ermöglicht eine ungleiche Aufteilung des Datenrahmens, wie im folgenden Python-Code gezeigt:

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

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

print(df)

split_data = np.array_split(df, 4)

for part in split_data:
    print(part)</code>

Die Ausgabe dieses Codes zeigt die Aufteilung des Datenrahmens in vier gleiche Teile:

     A      B         C         D
0  foo    one -0.174067 -0.608579
1  bar    one -0.860386 -1.210518
2  foo    two  0.614102  1.689837
3  bar  three -0.284792 -1.071160
4  foo    two  0.843610  0.803712
5  bar    two -1.514722  0.870861
6  foo    one  0.131529 -0.968151
7  foo  three -1.002946 -0.257468

     A      B         C         D
0  foo    one -0.174067 -0.608579
1  bar    one -0.860386 -1.210518
2  foo    two  0.614102  1.689837
3  bar  three -0.284792 -1.071160
4  foo    two  0.843610  0.803712
5  bar    two -1.514722  0.870861

     A      B         C         D
0  foo    one  0.131529 -0.968151
1  foo  three -1.002946 -0.257468

     A      B         C         D
0  bar    one -0.860386 -1.210518
1  foo    two  0.614102  1.689837
2  bar  three -0.284792 -1.071160
3  foo    two  0.843610  0.803712
4  bar    two -1.514722  0.870861

Die Verwendung von np.array_split gewährleistet eine gleichmäßige Verteilung der Datenrahmenzeilen, unabhängig von ihrer Gesamtzahl. Dies bietet eine praktische Methode zum Aufteilen großer Datensätze in überschaubare Teile zur weiteren Verarbeitung.

Das obige ist der detaillierte Inhalt vonWie teile ich einen großen Pandas DataFrame in gleiche Teile auf, wenn die Anzahl der Zeilen nicht durch die Anzahl der Teile 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