Pandas:没有排序索引和列的数据透视表

时间:2015-03-02 16:16:29

标签: python sorting pandas

我尝试以某种方式转动数据,以便生成的表的索引和列不会自动排序。数据的示例可能是:

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轴。枢轴结果应如下所示:

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.右边是我希望如何绘制数据。有没有人知道如何在转动表时防止pandas对索引和列进行排序?

1 个答案:

答案 0 :(得分:0)

我有恢复订单的替代方案,因为订购基于相对于 Y 值的 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

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