2016-11-15 72 views
2

重新安排我有了兩列,看起來像一個熊貓數據幀:熊貓,如何通過日期

title  date 
    Event0  2016-01-03 
    Event1  2016-02-28 
    Event2  2016-06-19 
    Event3  2016-04-17 
    Event4  2015-11-12 

等等

我想重新排序按日期的事件按降序排列按日期再創建一個python字典的結果。因此,我想我的Python字典的鍵(串),價值(日期時間)對看起來像:

result_dictionary = { 
    'Event2': 2016-06-19, 
    'Event3': 2016-04-17, 
    'Event1': 2016-02-28, 
    'Event0': 2016-01-03, 
    'Event4': 2015-11-12 
} 

什麼是最有效的方式做到這一點?

感謝信

回答

3

你需要OrderedDict,因爲你不能排序的字典,因爲dictionary有沒有順序:

from collections import OrderedDict 

d = df.set_index('title').date.to_dict() 
print (d) 
{'Event1': '2016-02-28', 
'Event4': '2015-11-12', 
'Event0': '2016-01-03', 
'Event3': '2016-04-17', 
'Event2': '2016-06-19'} 


od = OrderedDict(sorted(d.items(), key=lambda x:x[1], reverse=True)) 
print (od) 
OrderedDict([('Event2', '2016-06-19'), 
      ('Event3', '2016-04-17'), 
      ('Event1', '2016-02-28'), 
      ('Event0', '2016-01-03'), 
      ('Event4', '2015-11-12')]) 

d = df.set_index('title').date.sort_values(ascending=False).to_dict() 
print (d) 
{'Event0': '2016-01-03', 
'Event4': '2015-11-12', 
'Event1': '2016-02-28', 
'Event3': '2016-04-17', 
'Event2': '2016-06-19'} 
+0

您也可以[檢查此](http://stackoverflow.com/q/613183/ 2901002) – jezrael

+0

謝謝,這工作 – user7162063