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

标签 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 在旋转表时对索引和列进行排序?

最佳答案

我有一个恢复订单的替代方案,因为排序是基于相对于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/

相关文章:

python - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录。有关详细信息,请参阅代理日志文件

Python:用#字符分割文本文件并汇总总数

python - 对 RGB 颜色分量执行 Sobel 滤镜

python - 运行时错误: maximum recursion depth exceeded in Odoo 10

python - 计算数据框中的平均值并添加到新列

algorithm - 是否可以按降序迭代获取数组的部分和?

ios - 如何按 id 或月份 : Descending (Latest Post First)? 对数组进行排序

php - 在 php 中,usort() 函数如何工作

python - Pandas 将组中的最后一项替换为 if NaN 与另一列

python - 如何格式化 pandas 数据框的文件输出?