Wie behalte ich Spalten während der Gruppierung mit Auswahl des Mindestwerts in Pandas bei?

Susan Sarandon
Freigeben: 2024-10-25 08:18:02
Original
185 Leute haben es durchsucht

How to Preserve Columns During Groupby with Minimum Value Selection in Pandas?

Beibehalten von Spalten während Groupby mit Auswahl des Mindestwerts

Problem:

Beim Durchführen eines Groupby Bei einer Operation auf einem Pandas-Datenrahmen zur Auswahl von Zeilen mit dem Mindestwert für eine bestimmte Spalte werden andere Spalten häufig versehentlich gelöscht. Dies kann problematisch sein, wenn zusätzliche Informationen aus diesen Spalten gewünscht werden.

Lösung 1: Verwendung von idxmin() für die Indexauswahl

Ein Ansatz besteht darin, die anderen Spalten beizubehalten um idxmin() zu verwenden, um die Indizes der Elemente mit dem Mindestwert für die angegebene Spalte zu erhalten. Diese Indizes können dann verwendet werden, um die entsprechenden Zeilen aus dem ursprünglichen Datenrahmen auszuwählen:

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

Lösung 2: Sortieren und Auswählen des ersten Elements

Eine alternative Methode ist um den Datenrahmen nach der Spalte mit dem Mindestwert zu sortieren und dann das erste Element aus jeder Gruppe auszuwählen:

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

Beispiel:

Beide Lösungen erzielen das gewünschte Ergebnis die anderen Spalten beizubehalten und gleichzeitig Zeilen mit dem Mindestwert für die angegebene Spalte auszuwählen:

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

df_min_idx = df.loc[df.groupby("item")["diff"].idxmin()]
df_min_sort = df.sort_values("diff").groupby("item", as_index=False).first()

print(df_min_idx)
print(df_min_sort)</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 Spalten während der Gruppierung mit Auswahl des Mindestwerts in Pandas bei?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!