Heim > Backend-Entwicklung > Python-Tutorial > Wie behalte ich andere Spalten bei, wenn ich GroupBy in Pandas verwende?

Wie behalte ich andere Spalten bei, wenn ich GroupBy in Pandas verwende?

Mary-Kate Olsen
Freigeben: 2024-10-24 18:32:48
Original
1081 Leute haben es durchsucht

How to Keep Other Columns When Using GroupBy in Pandas?

Andere Spalten bei GroupBy beibehalten

In Pandas-Datenrahmen kann die Verwendung von Groupby zum Filtern von Zeilen basierend auf einer bestimmten Spalte zum Verlust anderer führen Spalten in der Ausgabe. Dieses Problem tritt auf, wenn Gruppenoperationen wie das Ermitteln des Mindestwerts einer Spalte und das Ausschließen von Zeilen unterhalb eines Schwellenwerts durchgeführt werden.

Um diese Einschränkung zu überwinden und andere Spalten während der Gruppierung beizubehalten, gibt es einige Methoden:

Methode 1: Verwendung von idxmin()

idxmin() gibt die Indizes von Zeilen mit dem Mindestwert für eine bestimmte Spalte zurück. Auf diese Weise können wir die spezifischen Zeilen auswählen und alle ihre Spalten beibehalten:

<code class="python">df_filtered = df.loc[df.groupby("item")["diff"].idxmin()]</code>
Nach dem Login kopieren

Methode 2: Sortieren und zuerst

Sortieren des Datenrahmens nach der Spalte bis gefiltert werden und dann das erste Element jeder Gruppe verwendet wird, bleiben auch andere Spalten erhalten:

<code class="python">df_filtered = df.sort_values("diff").groupby("item", as_index=False).first()</code>
Nach dem Login kopieren

Beide Methoden führen zum gleichen Ergebnis, wie im folgenden Beispiel zu sehen ist:

<code class="python">df = pd.DataFrame({"item": [1, 1, 1, 2, 2, 2, 2, 3, 3],
                   "diff": [2, 1, 3, -1, 1, 4, -6, 0, 2],
                   "otherstuff": [1, 2, 7, 0, 3, 9, 2, 0, 9]})

# Method 1
df_filtered1 = df.loc[df.groupby("item")["diff"].idxmin()]

# Method 2
df_filtered2 = df.sort_values("diff").groupby("item", as_index=False).first()

print(df_filtered1)
print(df_filtered2)</code>
Nach dem Login kopieren

Ausgabe :

   item  diff  otherstuff
1     1     1           2
6     2    -6           2
7     3     0           0

   item  diff  otherstuff
0     1     1           2
1     2    -6           2
2     3     0           0
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behalte ich andere Spalten bei, wenn ich GroupBy in Pandas verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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