2017-01-05 16 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

ごDATAFRAMEための日時のようなインデックスを作成し、その後、あなたはresampleを使用することができます。

series.resample('15T') 
0

また、新しいDataFrameを構築し、numpyメソッドを使用してこれを行うこともできます。

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を返し

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']) 

列(インデックス= 0)によって配列を付加します。 np.arange(df.shape[0]).repeat(4, axis=0)は0〜23を4回繰り返して時間IDを取得し、15分ごとの値も同様に構成されます。 pd.DataFrameはDataFramesを生成し、列名も追加されます。

関連する問題