2

pandas DataFrameオブジェクトにはsortメソッドがありますが、pandasDataMatrixオブジェクトにはありません。

この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

結果は、最初のエントリとして2011年2月8日、最後のエントリとして2011年2月16日のDataMatrixになります。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
4

2 に答える 2

8

実際、0.2から0.3の間で、sortUp/sortDownの名前を単一のsortメソッドに変更しました。申し訳ありません。

可能であれば、パンダの最先端を維持することを強くお勧めします(https://github.com/wesm/pandas)!また、すべてのインタラクティブな作業にIPythonを使用することを検討してください(http://ipython.scipy.org)-タブ補完とオブジェクトの簡単なイントロスペクションがあると、メソッドの検索とdocstringの探索に非常に役立ちます。

于 2011-06-24T14:08:42.773 に答える
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         
于 2011-04-05T21:44:36.257 に答える