0
我想在django查询集中生成数据,同时在索引列上保留原始(非字母)排序顺序。这些数据将在谷歌可视化折线图中使用。支持数据并保持原始排序顺序
我把我自己的代码一起做了这个工作,但它有点难看,我想知道是否可以使用pandas DataFrame枢轴来完成。
我从来没有用过熊猫,所以在阅读了doco之后,这就是我想出来的。
这里是我未发表的数据框,按日期和高音排序,其中男高音后缀表示:D =日,M =月,Y =年。
df = DataFrame(data)
date tenor value
0 2014-01-01 1D 0.517125
1 2014-01-01 1M 0.5175
2 2014-01-01 2M 0.518159
3 2014-01-01 3M 0.5187
4 2014-01-01 4M 0.51912
5 2014-01-01 5M 0.51949
6 2014-01-01 6M 0.5197
7 2014-01-01 9M 0.519511
8 2014-01-01 1Y 0.5198
9 2014-01-01 18M 0.521228
10 2014-01-01 2Y 0.523097
11 2014-01-01 3Y 0.525054
12 2014-01-01 4Y 0.527055
13 2014-01-01 5Y 0.529054
14 2014-01-01 6Y 0.531099
15 2014-01-01 7Y 0.532852
16 2014-01-01 8Y 0.534207
17 2014-01-01 9Y 0.535314
18 2014-01-02 1D 0.517874
19 2014-01-02 1M 0.5181
20 2014-01-02 2M 0.518451
21 2014-01-02 3M 0.5188
22 2014-01-02 4M 0.519113
23 2014-01-02 5M 0.519418
24 2014-01-02 6M 0.5196
25 2014-01-02 9M 0.519377
26 2014-01-02 1Y 0.5197
27 2014-01-02 18M 0.521406
28 2014-01-02 2Y 0.523405
29 2014-01-02 3Y 0.525254
30 2014-01-02 4Y 0.527151
31 2014-01-02 5Y 0.529256
32 2014-01-02 6Y 0.531543
33 2014-01-02 7Y 0.533457
34 2014-01-02 8Y 0.534802
35 2014-01-02 9Y 0.535847
36 2014-01-03 1D 0.518552
37 2014-01-03 1M 0.5186
38 2014-01-03 2M 0.518536
39 2014-01-03 3M 0.5186
40 2014-01-03 4M 0.518865
41 2014-01-03 5M 0.51916
42 2014-01-03 6M 0.5193
43 2014-01-03 9M 0.519024
44 2014-01-03 1Y 0.5193
45 2014-01-03 18M 0.520882
46 2014-01-03 2Y 0.5228
47 2014-01-03 3Y 0.524647
48 2014-01-03 4Y 0.526752
49 2014-01-03 5Y 0.528957
50 2014-01-03 6Y 0.531065
51 2014-01-03 7Y 0.532856
52 2014-01-03 8Y 0.534325
53 2014-01-03 9Y 0.535558
使用pandas pivot会产生以下结果。该枢轴工作,但行的顺序错误。
df_pivot = df.pivot(index='tenor', columns='date', values='value')
tenor 2014-01-01 2014-01-02 2014-01-03
18M 0.521228 0.521406 0.520882
1D 0.517125 0.517874 0.518552
1M 0.5175 0.5181 0.5186
1Y 0.5198 0.5197 0.5193
2M 0.518159 0.518451 0.518536
2Y 0.523097 0.523405 0.5228
3M 0.5187 0.5188 0.5186
3Y 0.525054 0.525254 0.524647
4M 0.51912 0.519113 0.518865
4Y 0.527055 0.527151 0.526752
5M 0.51949 0.519418 0.51916
5Y 0.529054 0.529256 0.528957
6M 0.5197 0.5196 0.5193
6Y 0.531099 0.531543 0.531065
7Y 0.532852 0.533457 0.532856
8Y 0.534207 0.534802 0.534325
9M 0.519511 0.519377 0.519024
9Y 0.535314 0.535847 0.535558
我想由男高音列排序结果:
tenor 2014-01-01 2014-01-02 2014-01-03
1D 0.517125 0.517874 0.518552
1M 0.5175 0.5181 0.5186
2M 0.518159 0.518451 0.518536
3M 0.5187 0.5188 0.5186
4M 0.51912 0.519113 0.518865
5M 0.51949 0.519418 0.51916
6M 0.5197 0.5196 0.5193
9M 0.519511 0.519377 0.519024
1Y 0.5198 0.5197 0.5193
18M 0.521228 0.521406 0.520882
2Y 0.523097 0.523405 0.5228
3Y 0.525054 0.525254 0.524647
4Y 0.527055 0.527151 0.526752
5Y 0.529054 0.529256 0.528957
6Y 0.531099 0.531543 0.531065
7Y 0.532852 0.533457 0.532856
8Y 0.534207 0.534802 0.534325
9Y 0.535314 0.535847 0.535558
我想过写会比较,然后使用与当男高音值转换为天的自定义排序函数(不知道现在怎么样)。
我调查了使用google visualization pivot,但似乎只适用于不在现有数据表的查询。
任何其他建议将不胜感激。
究竟是什么,队友的欢呼声! – CDMP