我正在尝试以某种方式转换数据,以便结果表的索引和列不会自动排序。数据示例可能是:
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 在旋转表时对索引和列进行排序?
最佳答案
我有一个恢复订单的替代方案,因为排序是基于相对于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
不是最好的方法,但肯定会实现你想要的。
关于python - Pandas:没有排序索引和列的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814464/