2016-12-18 17 views
2

Ich habe einen Datenrahmen wie folgt aber in einem viel großem MaßstabPandas Dataframe Transponieren Index und Spalten

 Sample Taxonomy Count 
    0 1  A  1 
    1 1  B  2 
    2 1  C  5 
    3 1  D  7 
    4 2  B  1 
    6 2  D  3 
    7 2  E  4 
    8 2  F  5  

Das Ergebnis ich wünsche ist wie folgt

Taxonomy A B C D E F G 
    Sample 1: 1 2 5 7 NA NA NA 
    Sample 2: NA 1 NA 3 4 5 NA 

Versuchte Taxonomie den Index zu machen, aber ich immer noch habe eine Kopie jeder Taxonomie für jedes Sample und immer noch, wenn ich das mit DataFrame.transpose() transponiere. Es ergibt sich nicht der gewünschte Datenrahmen.

+0

'df.pivot (Index = 'Sample', Säulen = 'Taxonomie', Werte = 'Count') '? – MaxU

Antwort

1

können Sie pivot verwenden:

df = df.pivot(index='Sample', columns='Taxonomy', values='Count') 
print (df) 
Taxonomy A B C D E F 
Sample         
1   1.0 2.0 5.0 7.0 NaN NaN 
2   NaN 1.0 NaN 3.0 4.0 5.0 

Oder set_index mit unstack:

df = df.set_index(['Sample','Taxonomy'])['Count'].unstack() 
print (df) 
Taxonomy A B C D E F 
Sample         
1   1.0 2.0 5.0 7.0 NaN NaN 
2   NaN 1.0 NaN 3.0 4.0 5.0 
+0

Danke, das hat perfekt funktioniert! – Whatamidoing

+0

Froh kann dir helfen. – jezrael

+0

Gehen Sie voran und markieren Sie die Antwort als akzeptiert! – dartdog

Verwandte Themen