Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Werte innerhalb von Pandas GroupBy-Gruppen mithilfe eines Trennzeichens effizient verketten?

Wie kann ich Werte innerhalb von Pandas GroupBy-Gruppen mithilfe eines Trennzeichens effizient verketten?

Linda Hamilton
Freigeben: 2024-12-04 22:28:14
Original
1250 Leute haben es durchsucht

How Can I Efficiently Concatenate Values within Pandas GroupBy Groups Using a Delimiter?

Pandas GroupBy mit Delimiter Joiner

Beim Gruppieren von Daten in Pandas mit mehreren Werten kann es vorkommen, dass Werte innerhalb von Gruppen mithilfe von a verkettet werden müssen spezifisches Trennzeichen. Eine einfache Gruppierungs- und Summenoperation kann jedoch zu einer unerwünschten Ausgabe ohne das gewünschte Trennzeichen führen.

Bedenken Sie den folgenden Code:

import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()
# Output:
# A CatTiger
# B BallBat
Nach dem Login kopieren

Dies ergibt eine einzelne Zeichenfolge mit verketteten Werten, ohne die gewünschtes Trennzeichen durch Bindestrich.

Um die gewünschte Ausgabe zu erzielen, können Sie die Funktion „Anwenden“ in Kombination mit verwenden join:

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
Nach dem Login kopieren

Diese Lösung liefert jedoch möglicherweise immer noch nicht die erwartete Ausgabe, da in jedem Wert unerwünschte Zeichen enthalten sind.

Alternative Lösung

Erwägen Sie stattdessen die Verwendung der agg-Funktion mit dem Join-Parameter:

df.groupby('col')['val'].agg('-'.join)
Nach dem Login kopieren

Dadurch werden Werte innerhalb von Gruppen mithilfe von korrekt verkettet Bindestrich-Trennzeichen, das die gewünschte Ausgabe bereitstellt:

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object
Nach dem Login kopieren

Aktualisierung der Lösung

Um MultiIndex- oder Indexspalten zu verarbeiten, können Sie den Index zurücksetzen und ihn mit „reset_index“ umbenennen Funktion:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
Nach dem Login kopieren

Dadurch wird der Index in eine neue Spalte mit dem Namen „neu“ konvertiert, was eine bequeme Möglichkeit zur weiteren Arbeit mit bietet gruppierte Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte innerhalb von Pandas GroupBy-Gruppen mithilfe eines Trennzeichens effizient verketten?. 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