2015-03-02 52 views
1

我试图以某种方式来枢轴转换数据,以便结果表的索引和列不会自动排序。数据示例可能是:熊猫:没有排序索引和列的枢轴表

X Y Z 

1 1 1 
3 1 2 
2 1 3 
4 1 4 

1 2 5 
3 2 6 
2 2 7 
4 2 8 

数据被解释为X,Y和Z轴。该pivotted结果应该是这样的:

X 1 3 2 4 
Y 
1 1 2 3 4 
2 5 6 7 8 

相反的结果看起来是这样的,其中索引和列进行排序,并据此数据:

X 1 2 3 4 
Y 
1 1 3 2 4 
2 5 7 6 8 

在这一点上,我已经失去了相关信息测量的顺序。例如,假设我将在Y = 1处绘制行,X为X轴,Y轴为数据值。

This would result in the figures in this picture.在右边是我想如何绘制数据。有没有人有一个想法如何防止大熊猫排序索引和列时旋转表?

回答

0

我不得不替代恢复的顺序,排序是基于X相对于Ÿ值,例如,你可以恢复你的X列通过这样的排序:

import pandas as pd 

# using your sample data 
df = pd.read_clipboard() 

df = df.pivot('Y', 'X', 'Z') 

df 
X 1 2 3 4 
Y    
1 1 3 2 4 
2 5 7 6 8 

# re-order your X columns by the values of first Y, for instance 
df = df[df.T[1].values] 

df 
X 1 3 2 4 
Y    
1 1 2 3 4 
2 5 6 7 8 

不是最好的方法,但确定它会达到你想要的。

+0

我明白你做了什么,但我想要原始顺序的列而不管Z值。我给出的例子可能不是最好的。也许我可以从X列中检索模式'[1,3,2,4]'并按照该模式进行排序,我试图找出如何,但是如果您有一个想法,我会非常感激。 – Rubenknex 2015-03-03 08:47:20

+0

好吧,我可以通过'df.groupby('Y')['X']。get_group(1).values'来检索模式,并按这些排序。 – Rubenknex 2015-03-03 09:03:48