Heim >Backend-Entwicklung >Python-Tutorial >Wie verkette ich Zeichenfolgen aus mehreren Pandas DataFrame-Zeilen mithilfe von GroupBy?
Verketten von Zeichenfolgen aus mehreren Zeilen mithilfe von Pandas GroupBy
Um Zeichenfolgen aus mehreren Zeilen in einer Spalte mithilfe von Groupby von Pandas zu verketten, können wir a nutzen Kombination aus Groupby- und Transformationstechniken.
Betrachten Sie den folgenden Datensatz, in dem wir die verketten möchten Spalte „Text“ für jede Gruppe von „Name“ und „Monat“:
import pandas as pd from io import StringIO data = StringIO( "\n".join([ '"name1","hej","2014-11-01"', '"name1","du","2014-11-02"', '"name1","aj","2014-12-01"', '"name1","oj","2014-12-02"', '"name2","fin","2014-11-01"', '"name2","katt","2014-11-02"', '"name2","mycket","2014-12-01"', '"name2","lite","2014-12-01"' ]) ) # Load and process the data df = pd.read_csv(data, header=0, names=["name", "text", "date"], parse_dates=["date"]) df["month"] = df["date"].apply(lambda x: x.month)
Um die Spalte „Text“ für jede Gruppe von „Name“ und „Monat“ zu verketten, können wir die Funktion „groupby“ verwenden :
df['text'] = df[['name','text','month']].groupby(['name','month'])['text'].transform(lambda x: ','.join(x))
Alternativ können wir die Apply-Funktion verwenden und den Index zurücksetzen:
df.groupby(['name','month'])['text'].apply(','.join).reset_index()
Dies führt zu einer neuen Spalte, in der die „Text“-Werte werden für jede Gruppe verkettet:
name month text 0 name1 11 du 1 name1 12 aj,oj 2 name2 11 fin,katt 3 name2 12 mycket,lite
Durch die Verwendung der Groupby-Transformationstechniken können wir Zeichenfolgen aus mehreren Zeilen effizient verketten und so die Datenanalyse und -präsentation verbessern.
Das obige ist der detaillierte Inhalt vonWie verkette ich Zeichenfolgen aus mehreren Pandas DataFrame-Zeilen mithilfe von GroupBy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!