Heim > Backend-Entwicklung > Python-Tutorial > Wie teile ich Pandas DataFrame basierend auf dem Spaltenwert in Teilmengen auf?

Wie teile ich Pandas DataFrame basierend auf dem Spaltenwert in Teilmengen auf?

Barbara Streisand
Freigeben: 2024-10-19 22:33:02
Original
751 Leute haben es durchsucht

How to Split Pandas DataFrame into Subsets Based on Column Value?

Pandas-DataFrame basierend auf dem Spaltenwert aufteilen

In Pandas ist ein häufig anzutreffendes Szenario die Notwendigkeit, einen DataFrame basierend auf in mehrere Teilmengen aufzuteilen die in einer bestimmten Spalte vorhandenen Werte. Dies ermöglicht eine gezielte Datenanalyse und -manipulation.

Um dies zu erreichen, können wir die Leistungsfähigkeit der booleschen Indizierung in Pandas nutzen. Betrachten wir einen DataFrame mit einer Spalte namens „Sales“ und untersuchen wir, wie wir ihn in zwei Teile aufteilen können, basierend darauf, ob der „Sales“-Wert unter oder über einem Schwellenwert „s“ liegt.

Lösung:

<code class="python"># Create a DataFrame with a "Sales" column
df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]})
print (df)</code>
Nach dem Login kopieren
   A  Sales
0  3     10
1  4     20
2  7     30
3  6     40
4  1     50
Nach dem Login kopieren
<code class="python"># Split the DataFrame based on "Sales" values
s = 30

df1 = df[df['Sales'] >= s]
print (df1)</code>
Nach dem Login kopieren
   A  Sales
2  7     30
3  6     40
4  1     50
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird ein neuer DataFrame, df1, erstellt, der die Zeilen enthält, in denen der „Sales“-Wert größer oder gleich „s“ ist.

<code class="python">df2 = df[df['Sales'] < s]
print (df2)
Nach dem Login kopieren
   A  Sales
0  3     10
1  4     20
Nach dem Login kopieren
Nach dem Login kopieren

df2 umfasst die Zeilen, in denen der „Sales“-Wert kleiner als „s“ ist.

Alternativer Ansatz mit bitweiser Negation:

Anstatt den Größer-als-oder-Gleich-Operator zu verwenden, können wir auch die bitweise Negation (~) verwenden, um die Maske umzukehren:

<code class="python">mask = df['Sales'] >= s
df1 = df[mask]
df2 = df[~mask]
print (df1)</code>
Nach dem Login kopieren
   A  Sales
2  7     30
3  6     40
4  1     50
Nach dem Login kopieren
Nach dem Login kopieren
<code class="python">print (df2)</code>
Nach dem Login kopieren
   A  Sales
0  3     10
1  4     20
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Ansatz erreicht das gleiche Aufteilung, ermöglicht aber einen prägnanteren und optimierten Codierungsstil.

Das obige ist der detaillierte Inhalt vonWie teile ich Pandas DataFrame basierend auf dem Spaltenwert in Teilmengen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage