2017-02-25 89 views
2

所以,我有時間戳,看起來像下面這樣:如何按熊貓時間戳排序?

20140804:10:00:13.281486 

20140804:10:00:13.400113 

20140804:10:00:13.555512 

20140804:10:00:13.435677 

我有他們在一個數據幀,我試圖給他們以升序排序。我已經嘗試了以下。但是,這似乎並沒有工作

df['yyyymmdd'] = pd.to_numeric(df['yyyymmdd'], errors='coerce') 

df['hh'] = pd.to_numeric(df['hh'], errors='coerce') 

df['mm'] = pd.to_numeric(df['mm'], errors='coerce') 

df['ss'] = pd.to_numeric(df['ss'], errors='coerce') 

df=df.sort(['yyyymmdd', 'hh','mm','ss'], ascending=[True, True,True,True]) 

任何幫助表示讚賞。

回答

3

你只需要確保你表示格式規範正確,你可以使用pd.to_datetimesort_values之前將它們轉換爲實際日期時間。

pd.to_datetime(stamps, format="%Y%m%d:%H:%M:%S.%f").sort_values() 

這比部件分解時間戳和排序進行多條件,你正在嘗試更直接。

演示

>>> stamps 
0 20140804:10:00:13.281486 
1 20140804:10:00:13.400113 
2 20140804:10:00:13.555512 
3 20140804:10:00:13.435677 
dtype: object 

>>> pd.to_datetime(stamps, format="%Y%m%d:%H:%M:%S.%f").sort_values() 
0 2014-08-04 10:00:13.281486 
1 2014-08-04 10:00:13.400113 
3 2014-08-04 10:00:13.435677 
2 2014-08-04 10:00:13.555512 
dtype: datetime64[ns]