2017-01-05 66 views
1

祝大家新年快樂!Python:如何將小時值分爲15分鐘桶?

我想這個問題可能很簡單,但我無法弄清楚。

我如何在python中將小時數據快速轉換爲15分鐘桶(請參見下表)。基本上左列應該轉換成正確的一列。只需複製每小時的時間值並將其轉儲到新列中。

感謝您的支持!

乾杯!

\t Hourly \t \t 15mins 
 
1 \t 28.90 \t 1 \t 28.90 
 
2 \t 28.88 \t 1 \t 28.90 
 
3 \t 28.68 \t 1 \t 28.90 
 
4 \t 28.67 \t 1 \t 28.90 
 
5 \t 28.52 \t 2 \t 28.88 
 
6 \t 28.79 \t 2 \t 28.88 
 
7 \t 31.33 \t 2 \t 28.88 
 
8 \t 32.60 \t 2 \t 28.88 
 
9 \t 42.00 \t 3 \t 28.68 
 
10 \t 44.00 \t 3 \t 28.68 
 
11 \t 44.00 \t 3 \t 28.68 
 
12 \t 44.00 \t 3 \t 28.68 
 
13 \t 39.94 \t 4 \t 28.67 
 
14 \t 39.90 \t 4 \t 28.67 
 
15 \t 38.09 \t 4 \t 28.67 
 
16 \t 39.94 \t 4 \t 28.67 
 
17 \t 44.94 \t 5 \t 28.52 
 
18 \t 66.01 \t 5 \t 28.52 
 
19 \t 49.45 \t 5 \t 28.52 
 
20 \t 48.37 \t 5 \t 28.52 
 
21 \t 38.02 \t 6 \t 28.79 
 
22 \t 34.55 \t 6 \t 28.79 
 
23 \t 33.33 \t 6 \t 28.79 
 
24 \t 32.05 \t 6 \t 28.79 
 
\t \t 7 \t 31.33 
 
\t \t 7 \t 31.33 
 
\t \t 7 \t 31.33 
 
\t \t 7 \t 31.33

回答

0

您的數據幀創建日期時間類指標,那麼你可以使用resample

series.resample('15T') 
0

你也可以通過構建一個新的DataFrame並使用numpy方法來做到這一點。

import numpy as np 

pd.DataFrame(np.column_stack((np.arange(df.shape[0]).repeat(4, axis=0), 
           np.array(df).repeat(4, axis=0))), 
      columns=['hours', '15_minutes']) 

返回

hours 15_minutes 
0  0  28.90 
1  0  28.90 
2  0  28.90 
3  0  28.90 
4  1  28.88 
5  1  28.88 
     ... 
91  22  33.33 
92  23  32.05 
93  23  32.05 
94  23  32.05 
95  23  32.05 

column_stack追加由列(索引= 0)陣列。 np.arange(df.shape[0]).repeat(4, axis=0)通過四次重複0到23來獲得小時ID,並且以相似的方式構造每個15分鐘的值。 pd.DataFrame產生數據幀並且列名也被添加。

相關問題