2017-01-26 3 views
2

Sagen wirVerschwenkung eine Unterdatenrahmen

C1 C2 C3 A B C 
x y z 10 5 1 
r s t 0 0 0 
u v z 1 0 0 

Ich hoffe, bin daran zu wandeln das folgende Ergebnis zu erhalten einen Datenrahmen wie die folgenden 6 Spalten:

C1 C2 C3 P V 
x y z A 10 
x y z B 5 
x y z C 1 
u v z A 1 

Ich denke, kann man die verschwenken Datenrahmen, um dieses Ergebnis zu erhalten, aber ich habe Schwierigkeiten, dies zu erreichen. Wie kann ich pivot_table oder pivot verwenden, um diese Transformation durchzuführen?

+1

Ich glaube, Sie wollen [ 'melt'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html), die ist das Gegenteil von "Pivot" – Michael

+1

Schauen Sie sich Pandas [schmelzen] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html) – gobrewers14

Antwort

3

Verwendung melt + query

pd.melt(df, 'C1 C2 C3'.split(), list('ABC'), 'P', 'V').query('V != 0') 

    C1 C2 C3 P V 
0 x y z A 10 
2 u v z A 1 
3 x y z B 5 
6 x y z C 1 
Verwandte Themen