2016-09-01 6 views
1

Ich habe ein Datenframe wie das Folgende: Beide Spalten sind Strings, wobei ValCol eine Zeichenfolge aus durch Komma getrennten ganzen Zahlen ist. Der Index ist ein generischer ganzzahliger Index ohne Bedeutung.Verketten von Spaltenwerten in Zeilenwerten in Pandas

NameCol ValCol 
Name1  555, 333 
Name2  433 
Name1  999 
Name3  123 
Name2  533 

Was ist der beste Weg, es zu

NameCol ValCol 
Name1  555, 333, 999 
Name2  433, 533 
Name3  123 

T kümmern sich nicht aggregieren über die Reihenfolge der durch Komma getrennte ganze Zahlen, aber ich brauche ein Komma zwischen ihnen zu halten. Es wird wahrscheinlich ein sehr kleiner Datenrahmen, < 100 Datensätze, so dass die Effizienz nicht kritisch ist.

Ich fühle mich wie es sollte einige groupby Ansatz dazu, aber ich habe es noch nicht herausgefunden.

Antwort

4

einen groupby Ansatz:

df = df.groupby('NameCol')['ValCol'].apply(', '.join).reset_index() 

Die resultierende Ausgabe:

NameCol   ValCol 
0 Name1 555, 333, 999 
1 Name2  433, 533 
2 Name3   123 
+0

Das macht so viel Sinn und ist sehr sauber, danke! – John

Verwandte Themen