2016-09-27 2 views
1

Bitte beachten Sie das Bild mit Link zum besten der Eingangs- und gewünschten Ausgabeformate zu sehen und Beschreibung untenGruppe einzigartige 0th Elemente CSV für einzigartige i-ten Elemente in Python oder hive

enter image description here

Ich suche gelesen nehmen Sie eine 3 (oder 2) Spalte CSV und erstellen Sie eine neue CSV, wo für jedes eindeutige 1. Element (dh 2. Spalte) alle eindeutigen 0. Elemente so gruppiert sind, dass die Struktur der Ausgabe CSV-Zeilen als solche sind: unique 1st element, eindeutiges 0. Element # 1, eindeutiges 0. Element # 2, ...

Verwenden von Python 3.xo r Python 2.x oder Hive oder SQL. Sehr schätzen irgendwelche Vorschläge. Vielen Dank!

+2

Daten als Text sorgen. – Ambrish

Antwort

1

Sie können es auf diese Weise tun:

In [34]: df 
Out[34]: 
    c1 c2 
0 1 p1 
1 1 p1 
2 1 p2 
3 2 p2 
4 2 p3 
5 3 p3 
6 3 p3 
7 3 p3 
8 3 p4 
9 3 p4 
10 3 p5 

In [36]: (df.groupby('c2')['c1'] 
    ....: .apply(lambda x: ','.join(x.unique().astype(str))) 
    ....: .to_frame('unique').to_csv(r'D:/temp/output.csv') 
    ....:) 

output.csv:

c2,unique 
p1,1 
p2,"1,2" 
p3,"2,3" 
p4,3 
p5,3 
+0

Danke @MaxU !!! Die Sortierung funktioniert gut. Es gibt ein kleines Problem mit den hinzugefügten Zeichen bc die sortierten 0th Elemente werden mit doppelten Anführungszeichen ausgegeben (") Das ist nicht in meinem ursprünglichen Post und ich kann das nachher beheben, aber im Idealfall hätte die Ausgabe CSV keine zusätzlichen Zeichen. Nochmals vielen Dank Code hat sehr geholfen! – WhyNot

Verwandte Themen