2011-04-05 101 views
2

熊猫DataFrame对象有sort method,但pandas DataMatrix对象没有。按升序对熊猫数据矩阵进行排序

根据索引(日期列)按升序排序此DataMatrix对象的最佳方法是什么?

>>> dm 
       compound_ret 
2/16/2011 0:00 0.006275682 
2/15/2011 0:00 0.003098208 
2/14/2011 0:00 0.0055039 
2/13/2011 0:00 0.011471506 
2/12/2011 0:00 0.011853712 
2/11/2011 0:00 0.009558739 
2/10/2011 0:00 0.014127912 
2/9/2011 0:00 0.02042923 
2/8/2011 0:00 0.023308062 

结果应与2/8/2011作为第一项,并2011/2/16作为最后一个条目的二维条码。 compound_ret列中的条目应该按排序中的日期排列。所以结果应该是这样的:

>>>dm_sorted 
        compound_ret 
2/8/2011 0:00 0.023308062 
2/9/2011 0:00 0.02042923 
2/10/2011 0:00 0.014127912 
2/11/2011 0:00 0.009558739 
2/12/2011 0:00 0.011853712 
2/13/2011 0:00 0.011471506 
2/14/2011 0:00 0.0055039 
2/15/2011 0:00 0.003098208 
2/16/2011 0:00 0.006275682 

回答

8

事实上0.2和0.3之间我改名sortUp/sortDown到单sort方法。对于那个很抱歉。

如果可以的话,我绝对推荐保持熊猫的出血边缘(https://github.com/wesm/pandas)!另外,考虑使用IPython来处理所有的交互式工作(http://ipython.scipy.org) - 我发现使用Tab完成和对象的简单内省有助于寻找方法和探索文档字符串。

0

你试过了吗?至少在我试过的熊猫版本中,DataMatrix继承自DataFrame

>>> type(dm) 
<class 'pandas.core.matrix.DataMatrix'> 
>>> dm.sort() 
         compound_ret  
2011-02-08 00:00:00 -0.6986   
2011-02-09 00:00:00 0.1846   
2011-02-10 00:00:00 0.2312   
2011-02-11 00:00:00 1.844   
2011-02-12 00:00:00 0.3662   
2011-02-13 00:00:00 0.1331   
2011-02-14 00:00:00 0.5166   
2011-02-15 00:00:00 1.37   
2011-02-16 00:00:00 0.9346   

>>> dm.sort(ascending=False)              
         compound_ret  
2011-02-16 00:00:00 0.9346   
2011-02-15 00:00:00 1.37   
2011-02-14 00:00:00 0.5166   
2011-02-13 00:00:00 0.1331   
2011-02-12 00:00:00 0.3662   
2011-02-11 00:00:00 1.844   
2011-02-10 00:00:00 0.2312   
2011-02-09 00:00:00 0.1846   
2011-02-08 00:00:00 -0.6986   
+0

感谢您的回复,请参阅上文。 – 2011-04-06 02:23:33

+0

从不,失败。就在我发布时,我知道了。不管我用什么版本,DataMatrix都有sortUp()和sortDown()方法。我发现他们使用dir(dataMatrix)。 – 2011-04-06 02:28:49

+0

奇怪。猜猜它是旧版本;我刚刚从GitHub中克隆了当前的一个。 – 2011-04-06 04:39:07