2016-04-03 4 views
3

mehrere Zeilen in einer einzigen Zeile zu kombiniere ich mehrere Zeilen in einer einzigen Reihe kombinieren müssen, das wäre einfach Concat mit PlatzWie mit Pandas

View of my dataframe: 
    tempx  value 
0 picture1   1.5 
1 picture555  1.5 
2 picture255  1.5 
3 picture365  1.5 
4 picture112  1.5 

ich die Datenrahmen wie diese umgesetzt werden soll sein: (Leerzeichen getrennt) tempx

Expected output: 
    tempx              value 
    0  picture1 picture555 picture255 picture365 picture112 1.5 

    or 
    as a python dict 
    {1.5:{picture1 picture555 picture255 picture365 picture112}} 

Werte Was habe ich versucht:

df_test['tempx']=df_test['tempx'].str.cat(sep=' ') 

dies funktioniert, aber es verbindet die Zeilen in allen Spalten wie folgt aus:

 tempx  value 
0 picture1 picture555 picture255 picture365 picture112 1.5 
1 picture1 picture555 picture255 picture365 picture112 1.5 
2 picture1 picture555 picture255 picture365 picture112 1.5 
3 picture1 picture555 picture255 picture365 picture112 1.5 
4 picture1 picture555 picture255 picture365 picture112 1.5 

Gibt es eine elegante Lösung?

+0

auch wenn es eine Lösung auf Wertspalte basierend bedingt zu kombinieren ist –

+0

Was ist Ihre erwartete Ausgabe, können Sie bearbeiten und beispielsweise in Frage? Möchten Sie die Wertspalte "gruppieren", sodass Sie die Bildnamen für jeden Wert hinzufügen? – Marius

+0

Ich habe grouby mit Pandas angewendet, der nächste Schritt wäre eine einzelne Zeile für jedes Wertattribut. Bitte überprüfen Sie die erwartete Ausgabe –

Antwort

10

können Sie verwenden groupby und apply Funktion join:

print df.groupby('value')['tempx'].apply(' '.join).reset_index() 
    value            tempx 
0 1.5 picture1 picture555 picture255 picture365 pict... 
+0

Vielen Dank, das hat funktioniert! –

+1

Froh kann dir helfen! Viel Glück! – jezrael