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>
A Sales 0 3 10 1 4 20 2 7 30 3 6 40 4 1 50
<code class="python"># Split the DataFrame based on "Sales" values s = 30 df1 = df[df['Sales'] >= s] print (df1)</code>
A Sales 2 7 30 3 6 40 4 1 50
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)
A Sales 0 3 10 1 4 20
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>
A Sales 2 7 30 3 6 40 4 1 50
<code class="python">print (df2)</code>
A Sales 0 3 10 1 4 20
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!