2017-06-09 79 views
0

試圖在python中實現時間序列預測模型,但是面臨datetime數據問題。在Pandas中預測時間序列的日期時間問題

所以我有日期時間的兩列的數據幀「DF」和float類型:

enter image description here

然後我嘗試使用值的方法,來構建陣列。但不便奇怪的事情發生,它顯示與時間戳和時間在陌生的格式日期:

enter image description here

,基本的緣故吧,我不能採用這一模式接收例如以下消息:「不能添加積分值到無時間戳的時間戳。「

那麼,似乎是什麼問題,如何解決?

+0

實際數據請。圖片沒有幫助 – piRSquared

回答

1

首先,創建numpy數組時,所有類型都是相同的。但是,datetime64int不一樣。所以我們必須解決這個問題,而且我們會。

其次,你試圖用df.values來做到這一點。然而,有意義的是,pandas將整個df變成dtype=object,然後變成object陣列。問題在於Timestamps的左邊是Timestamps,這是阻礙你的。

所以我想將它們轉換對我自己這樣

a = np.column_stack([df[c].values.astype(int) for c in ['transaction_date', 'amount']]) 

a 

array([[1454284800000000000,     1], 
     [1454371200000000000,     2], 
     [1454457600000000000,     3], 
     [1454544000000000000,     4], 
     [1454630400000000000,     5]]) 

我們總是可以轉換回的第一列這樣

a[:, 0].astype(df.transaction_date.values.dtype) 

array(['2016-02-01T00:00:00.000000000', '2016-02-02T00:00:00.000000000', 
     '2016-02-03T00:00:00.000000000', '2016-02-04T00:00:00.000000000', 
     '2016-02-05T00:00:00.000000000'], dtype='datetime64[ns]') 
-1

您可以將整數轉換成timedelta,並執行計算像之前:很複雜

from datetime import timedelta 

interval = timedelta(days = 5) 

#5 days later 
time_stamp += interval