2016-06-30 3 views
-2

Ich habe derzeit Datenframe an der Spitze. Gibt es eine Möglichkeit, eine groupby-Funktion zu verwenden, um einen anderen Datenrahmen zu erhalten, um die Daten zu gruppieren und die Wörter in das Format wie unten mit Python-Pandas zu verketten?Wie verwendet man groupby, um Strings in Python-Pandas zu verketten?

Dank

[enter image description [1]

+0

Es gibt eine ähnliche Frage hier: http://stackoverflow.com/questions/17841149/pandas-groupby-how-to-get-au nion-of-strings – johnchase

Antwort

6

Sie join auf Spalte nach groupby anwenden können:

df.groupby('index')['words'].apply(','.join) 

Beispiel:

In [326]: 
df = pd.DataFrame({'id':['a','a','b','c','c'], 'words':['asd','rtr','s','rrtttt','dsfd']}) 
df 

Out[326]: 
    id words 
0 a  asd 
1 a  rtr 
2 b  s 
3 c rrtttt 
4 c dsfd 

In [327]: 
df.groupby('id')['words'].apply(','.join) 

Out[327]: 
id 
a  asd,rtr 
b    s 
c rrtttt,dsfd 
Name: words, dtype: object 
+0

Danke Edchum, ich versuche, die Serie von der Gruppe zu konvertieren, die Sie in einen Datenrahmen zurückgeholfen haben, damit ich eine Zusammenführung machen kann, aber ich habe Probleme dabei, weil ich keinen Spaltennamen dafür habe die verketteten Elemente. Wie kann ich einen Spaltennamen hinzufügen? Ich habe versucht, mit pd.DataFrame (data = df, columns = []) in einen Datenrahmen zu wechseln, aber es funktioniert nicht, nochmals danke für jede Expertise. – user3655574

+0

Sorry, sind Sie nach Reset_index() auf dem obigen? – EdChum

+0

Vielen Dank Herr! Ich habe df.groupby ('id') ['words']. Apply (','. Join) .reset_index() und dann df1 = pd.DataFrame (data = df, columns = ['id', 'words' ]) und es funktioniert! – user3655574

Verwandte Themen