Сортировать панды DataMatrix в порядке возрастания - PullRequest
2 голосов
/ 06 апреля 2011

У объекта pandas DataFrame есть метод сортировки , но у объекта 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

Результатом должен стать DataMatrix с 2/2/2011 в качестве первой записи и 16.02.2011 в качестве последней записи.Записи в столбце component_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

Ответы [ 2 ]

8 голосов
/ 24 июня 2011

Действительно между 0,2 и 0,3 я переименовал sortUp / sortDown в одиночные sort методы.Извините за это.

Я определенно рекомендую следить за кровоточащим краем панд, если вы можете (https://github.com/wesm/pandas)!Кроме того, рассмотрите возможность использования IPython для всей вашей интерактивной работы (http://ipython.scipy.org) - я считаю, что наличие табуляции и простого самоанализа объектов очень помогает при поиске методов и изучении строк документации.

0 голосов
/ 06 апреля 2011

Вы пробовали это?По крайней мере, в той версии панд, которую я пробовал, 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         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...