2014-03-05 89 views
2

我有一個數據幀的市場價格,時間戳是微秒,例如。熊貓數據框組由不均勻的時間戳

Time  Bid 
0 2014-03-03 23:30:30.224323 0.892500 
1 2014-03-03 23:30:30.224390 0.892525 
2 2014-03-03 23:30:30.224408 0.892525 
3 2014-03-03 23:30:30.364299 0.892525 
4 2014-03-03 23:30:31.022652 0.892500 
5 2014-03-03 23:30:31.022702 0.892525 
6 2014-03-03 23:30:31.866949 0.892525 
7 2014-03-03 23:30:33.366843 0.892525 
8 2014-03-03 23:30:33.858239 0.892525 
9 2014-03-03 23:30:34.360997 0.892525 
10 2014-03-03 23:30:35.034307 0.892525 
11 2014-03-03 23:30:36.110848 0.892525 
12 2014-03-03 23:30:36.359973 0.892525 
13 2014-03-03 23:30:38.111191 0.892525 
14 2014-03-03 23:30:41.599924 0.892525 
15 2014-03-03 23:30:41.599972 0.892500 

我如何按時間條走微秒,例如, 如何將OHLC(開盤價,最高價,最低價,收盤價)平均時隙的結構(1分鐘,5分鐘,1小時等)轉換,並且還計算每個時間段?我試圖添加另一列

e['Time2'] = pd.to_datetime(e.Time, format='%Y/%m/%d %H:%M:%S') 

刪除%f,但Time2列看起來與Time列相同。

非常感謝,

如何將它轉換成類似

+0

我想我忘記resample函數,但如何通用函數(或lambda)。另外,重採樣方法是有限的,對吧? – bbc

回答

3

你需要做的日期時間的索引,使您可以重新取樣:

In [11]: df = df.set_index('Time') 

In [12]: df.resample('5min', how='ohlc') 
Out[12]: 
         Bid 
         open  high  low close 
Time 
2014-03-03 23:30:00 0.8925 0.892525 0.8925 0.8925 

注:不幸的是to_datetime沒有按」如果它失敗(至少在默認情況下),則升起,因此檢查列的dtype通常是個好主意是datetime64 ...

+0

如何應用計數功能?如何= ???)嗯,我想通了,這是np.size – bbc

+1

@bbc如何=「計數」也適用。 –

+0

真棒,想知道有效字符串的列表。 – bbc