2017-06-08 13 views
0

我有這樣的數據幀,其頭部看起來是這樣的:大熊貓行被轉移後,我試圖解決

Out[8]: 
     Date Value 
0 2016-06-30 481100.0 
1 2016-05-31 493800.0 
2 2015-12-31 514000.0 
3 2015-10-31 510700.0 

我想使用日期列作爲索引,然後行進行排序基礎上,日期的順序。

當我嘗試基於與第一列對它進行排序:

df.set_index('Date', inplace=True) 

然後頭看起來是這樣的:

  Value 
Date  
2016-06-30 481100.0 
2016-05-31 493800.0 
2015-12-31 514000.0 
2015-10-31 510700.0 

不僅數據幀不是基於日期排序,標頭弄亂了:enter image description here

爲什麼會發生這種情況,我該如何糾正它?

回答

2

你應該使用sort_values

In [3]: df 
Out[3]: 
     Date  Value 
0 2016-06-30 481100.0 
1 2016-05-31 493800.0 
2 2015-12-31 514000.0 
3 2015-10-31 510700.0 

In [4]: df = df.sort_values(by='Date') 

In [5]: df 
Out[5]: 
     Date  Value 
3 2015-10-31 510700.0 
2 2015-12-31 514000.0 
1 2016-05-31 493800.0 
0 2016-06-30 481100.0 

編輯: 一旦排序,你可以設置你想要的列數據幀的指數:

In [6]: df.set_index('Date', inplace=True) 

In [7]: df 
Out[7]: 
       Value 
Date     
2015-10-31 510700.0 
2015-12-31 514000.0 
2016-05-31 493800.0 
2016-06-30 481100.0 
+0

感謝。你能否也請提供一些解釋:(1)爲什麼我得到這個輸出和(2)什麼是set_index的正確用例?我希望使用日期列作爲索引,並根據日期的順序對行進行排序 –

+0

此輸出僅僅是對列進行排序的結果,在這種情況下是「日期」。 'set_index'僅對索引起作用,將列設置爲數據框的索引。一旦訂購,您可以再次設置「Date」列作爲您的數據幀的索引。 –

+0

這不是一團糟,它只是熊貓如何顯示輸出中的索引列。 –