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
Linda HamiltonOriginal
2024-12-04 22:28:141279Durchsuche

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

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

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)

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

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')

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!

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