2013-12-16 57 views
1

我有一個數據框,我想轉換成一個numpy記錄數組。 df.to_records()正常工作,除了一列中有日期時間值。作爲df.to_records()結果我得到:如何獲取記錄numpy數組與熊貓數據框的日期?

[(1275264000000000000L, 9912.0, 58450.0, 1036, 136.0, 15.0) 
(1275264000000000000L, 9912.0, 155471.0, 1033, 1033.0, 15.0) 
(1275264000000000000L, 9912.0, 166784.0, 1011, 111.0, 2.0) 
(1275264000000000000L, 9912.0, 166798.0, 10106, 1111.0, 12.0)] 

在每個元組的第一個值預計將日期,但他們是別的東西。他們的日期類型是'<M8[ns]'(我不知道它是什麼意思)。

有誰知道我怎麼能得到一個包含日期的記錄數組?

+0

這些代表自Unix時代以來以納秒(ns)爲單位的2010年5月31日。這是你期待的日期嗎? –

+0

我想有一個日期對象而不是納秒數。 – Roman

+0

是的,2010年5月31日是我期待的日期。 – Roman

回答

3

它只是表示:

>>> df 
        0  1 
0 2010-05-31 00:00:00 9912 
1 2010-05-31 00:00:00 9912 
>>> df.to_records() 
rec.array([(0L, 1275264000000000000L, 9912.0), 
      (1L, 1275264000000000000L, 9912.0)], 
     dtype=[('index', '<i8'), ('0', '<M8[ns]'), ('1', '<f8')]) 

>>> df.to_records()[0][1] 
numpy.datetime64('2010-05-31T04:00:00.000000000+0400') 

類型<M8[ns]是numpy的的datetime類型,NS表示,因爲時代在納秒存儲數據的一個。

>>> np.datetime64().dtype 
dtype('<M8') 
相關問題