2015-04-02 25 views
1

我有一個包含時間戳一個DF,例如,蟒多個時間戳到pandas.tslib.Timestamp

0 2014-12-18 10:47:37 
1 2014-12-18 10:47:37 
2 2014-12-18 10:47:37 
3 2015-01-30 04:50:49 
4 2015-03-01 11:16:41 

欲這個劃分成的,也就是說,每次30分鐘時隙。我看到這樣做的方式是將時間戳轉換爲'pandas.tslib.Timestamp',而不是劃分爲時間段並將它們分成多個分箱。 但是。轉換爲datetime.datetime.strptime的第一步僅適用於字符串,不適用於數據框或列表。所以,我發現整個DF轉換成pandas.tslib.Timestamp的唯一途徑是通過行後去行:

for k in range(len(tbl)): 
     tbl.iloc[k] = datetime.datetime.strptime(str(tbl[k]),"%Y-%m-%d %H:%M:%S") 

這是緩慢的,顯然是有辦法做到這一點作爲一個單一的鏡頭。 請指教。 謝謝!

回答

0
def time_norm(tmp,delta_T): 
    epoch_ms = tmp.astype(np.int64)//1000000L 
    tbl = epoch_ms//delta_T 
    tbl = tbl - tbl.min() 
    return tbl 

delta_T = 1000 #1 sec 
tmp = pd.to_datetime(tbl) 
tbl = time_norm(tmp,delta_T) 

在某些時候,pd.to_datetime在某些時候沒有工作,所以我避免使用它。原來它仍然是解決方案...