O_Vizzle
O_Vizzle

Reputation: 17

Python: How to split hourly values into 15 minute buckets?

happy new year to all!

I guess this question might be an easy one, but i can't figure it out.

How can i turn hourly data into 15 minute buckets quickly in python (see table below). Basically the left column should be converted into the right one.Just duplicate the hourly value for times and dump it into a new column.

Thanks for the support!

Cheers!

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

Upvotes: 1

Views: 1679

Answers (2)

lmo
lmo

Reputation: 38500

You could also do this through constructing a new DataFrame and using numpy methods.

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

which returns

    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 appends arrays by columns (index=0). np.arange(df.shape[0]).repeat(4, axis=0) gets the hour IDs by repeating 0 through 23 four times, and the values for each 15 minutes is constructed in a similar manner. pd.DataFrame produces the DataFrames and column names are added as well.

Upvotes: 1

gzc
gzc

Reputation: 8599

Create datetime-like index for your DataFrame, then you can use resample.

series.resample('15T')

Upvotes: 0

Related Questions