2017-01-02 133 views
4

我通過導入csv文件製作了一個數據框。並將日期列轉換爲日期時間並將其作爲索引。然而,排序索引時也不會產生我想熊貓數據框按日期排序

print(df.head()) 
df['Date'] = pd.to_datetime(df['Date']) 
df.index = df['Date'] 
del df['Date'] 
df.sort_index() 
print(df.head()) 

這裏的結果是結果:

  Date  Last 
0 2016-12-30 1.05550 
1 2016-12-29 1.05275 
2 2016-12-28 1.04610 
3 2016-12-27 1.05015 
4 2016-12-23 1.05005 
       Last 
Date    
2016-12-30 1.05550 
2016-12-29 1.05275 
2016-12-28 1.04610 
2016-12-27 1.05015 
2016-12-23 1.05005 

的日期要追溯到1999年,因此,如果我有點這個日期,它應該以正確的升序顯示數據?

+6

要麼'df.sort_index(inplace = True)'或'df = df.sort_index()' – MaxU

+0

也許最好使用'df.set_index('Date ',drop = True)'來改變索引。 – quapka

回答

1

只要擴展MaxU的正確答案:您已經使用了正確的方法,但是,正如許多其他熊貓方法一樣,您必須「重新創建」數據框才能使所需的更改生效。作爲MaxU已經建議,這是通過再次輸入變量(到「存儲」輸出端的使用的方法的到相同的變量)來實現,例如:

df = df.sort_index()

或通過利用屬性inplace=True的功率,這將取代變量的內容而不需要重新聲明它。

df.sort_index(inplace=True)

但是,以我的經驗,我常常感到「安全」使用第一個選項。它看起來更清晰和更規範,因爲並非所有方法都提供了inplace用法。但我都歸結爲腳本編制我猜...