我有以下形式的坐标列表
X | 和 | 与 |
---|---|---|
X1 | Y1 | Z(X1,Y1) |
X1 | Y2 | Z(X1,Y2) |
... | ... | ... |
X1 | 在 | Z(X1,IN) |
X2 | Y1 | Z(X2,Y1) |
X2 | Y2 | Z(X2,Y1) |
... | ... | ... |
XN | 在 | Z(XN,YN) |
我需要这样做,因为Z的功能很挑剔。
Matplot lib需要的Z值是一个2D数组。我想重新摆桌子,这样:
Y1 | Y2 | ... | 在 | |
---|---|---|---|---|
X1 | X(X1,Y1) | Z(X1,Y2) | ... | Z(X1,IN) |
X2 | Z(X2,Y1) | Z(X2,Y2) | ... | Z(X2,IN) |
... | ... | ... | ... | ... |
XN | Z(XN,Y1) | Z(XN,Y2) | ... | Z(XN,YN) |
我在Pandas尝试了一些枢轴选项,但是没有运气。事实证明,遍历表是不可靠的。
我迷路了,请帮忙。
编辑: `plotable_table = table.pivot(索引='X',列='Y',值='Z')返回奇数。不幸的是表格是3 x 230,plotable_table是23 x 142...。应该是23 x 10
表是:
X Y Z
0 10000 0.0 0.0
1 10000 1000.0 -200.6
2 10000 2000.0 -401.2
3 10000 3000.0 -601.8
4 10000 4000.0 -802.4
.. ... ... ...
225 230000 115000.0 -9050.5
226 230000 138000.0 -26726.0
227 230000 161000.0 -56028.0
228 230000 184000.0 -66562.0
229 230000 207000.0 -77096.0
[230 rows x 3 columns]
可绘制表格为:
Y 0.0 1000.0 2000.0 ... 189000.0 198000.0 207000.0
X ...
10000 0.0 -200.6 -401.2 ... NaN NaN NaN
20000 0.0 NaN -401.2 ... NaN NaN NaN
30000 0.0 NaN NaN ... NaN NaN NaN
40000 0.0 NaN NaN ... NaN NaN NaN
50000 4070.0 NaN NaN ... NaN NaN NaN
60000 4884.0 NaN NaN ... NaN NaN NaN
70000 5698.0 NaN NaN ... NaN NaN NaN
80000 6512.0 NaN NaN ... NaN NaN NaN
90000 9846.0 NaN NaN ... NaN NaN NaN
100000 18230.0 NaN NaN ... NaN NaN NaN
110000 20053.0 NaN NaN ... NaN NaN NaN
120000 24768.0 NaN NaN ... NaN NaN NaN
130000 26832.0 NaN NaN ... NaN NaN NaN
140000 28896.0 NaN NaN ... NaN NaN NaN
150000 30960.0 NaN NaN ... NaN NaN NaN
160000 41184.0 NaN NaN ... NaN NaN NaN
170000 43758.0 NaN NaN ... NaN NaN NaN
180000 46332.0 NaN NaN ... NaN NaN NaN
190000 48906.0 NaN NaN ... NaN NaN NaN
200000 51480.0 NaN NaN ... NaN NaN NaN
210000 54054.0 NaN NaN ... -86562.0 NaN NaN
220000 73568.0 NaN NaN ... NaN -73744.0 NaN
230000 76912.0 NaN NaN ... NaN NaN -77096.0
[23 rows x 142 columns]
答案是:
data = data.pivot(index='X', columns='Y', values='Z')
数据透视表的尺寸取决于X和Y的唯一值。您应该计算Y的多少个不同的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句