Heim >Backend-Entwicklung >Python-Tutorial >Wie zählt man mit Pandas eindeutige Werte in Gruppen?

Wie zählt man mit Pandas eindeutige Werte in Gruppen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-18 15:52:03253Durchsuche

How to Count Unique Values in Groups with Pandas?

Eindeutige Werte in Gruppen mit Pandas zählen

Bei der Arbeit mit Datensätzen, die mehrere in Kategorien gruppierte Variablen enthalten, ist es oft notwendig, die Anzahl zu bestimmen einzigartiger Werte, die jeder Gruppe zugeordnet sind. Pandas, eine weit verbreitete Python-Bibliothek zur Datenbearbeitung, bietet mehrere Methoden zum Zählen eindeutiger Werte innerhalb von Gruppen.

Eine häufige Anforderung besteht darin, die Anzahl eindeutiger Bezeichner innerhalb jeder Domäne zu zählen. Anhand eines Datenrahmens mit Spalten für ID und Domäne möchten wir ein Ergebnis erhalten, das die Anzahl der eindeutigen IDs für jede Domäne anzeigt.

Insbesondere unter Berücksichtigung der Daten:

      ID   domain
0    123   vk.com
1    123   vk.com
2    123  twitter.com
3    456   vk.com
4    456  facebook.com
5    456   vk.com
6    456   google.com
7    789  twitter.com
8    789   vk.com

Wir Ziel ist es, die folgende Ausgabe zu erzielen:

domain  count
vk.com       3
twitter.com   2
facebook.com  1
google.com    1

Um dies zu erreichen, können wir die Funktion nunique() innerhalb der Pandas-Groupby-Operation verwenden. Indem wir den Datenrahmen nach der Domänenspalte gruppieren und anschließend die Funktion nunique() auf die ID-Spalte anwenden, erhalten wir die Anzahl der eindeutigen Werte für jede Domäne. Der resultierende Datenrahmen enthält das gewünschte Ergebnis:

df = df.groupby(['domain', 'ID']).nunique()

print(df)

In bestimmten Szenarien können die Daten jedoch Zeichen wie einfache Anführungszeichen innerhalb der Domänennamen enthalten. Um solche Fälle zu behandeln, können wir die Funktion str.strip("'") verwenden, um die einfachen Anführungszeichen vor dem Gruppieren und Zählen zu entfernen. Dies kann wie folgt implementiert werden:

df = df.ID.groupby([df.domain.str.strip("'")]).nunique()

print(df)

Alternativ können wir den Code vereinfachen, indem wir die Funktion str.strip("'") innerhalb der Groupby-Operation verketten:

df.groupby(df.domain.str.strip("'"))['ID'].nunique()

Zur Beibehaltung Für die Domänenspalte im resultierenden Datenrahmen können wir die Funktion agg() mit dem Parameter as_index=False verwenden:

df = df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})

print(df)

Diese Methode gibt einen Datenrahmen mit sowohl der Domänen- als auch der Anzahlspalte zurück, wobei count stellt die Anzahl der eindeutigen IDs dar, die jeder Domäne zugeordnet sind.

Das obige ist der detaillierte Inhalt vonWie zählt man mit Pandas eindeutige Werte in Gruppen?. 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