Python:如何将每小时值拆分为15分钟的桶?

时间:2017-01-05 15:04:30

标签: python pandas

祝大家新年快乐!

我想这个问题可能很简单,但我无法弄清楚。

如何在python中快速将每小时数据转换为15分钟的桶(参见下表)。基本上左侧列应该转换为正确的列。只需复制小时值,并将其转储到新列中。

感谢您的支持!

干杯!



	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




2 个答案:

答案 0 :(得分:1)

您也可以通过构建新的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按列附加数组(index = 0)。 np.arange(df.shape[0]).repeat(4, axis=0)通过重复0到23四次来获取小时ID,并且每个15分钟的值以类似的方式构造。 pd.DataFrame生成了DataFrame,并且还添加了列名称。

答案 1 :(得分:0)

为您的DataFrame创建类似日期时间的索引,然后您可以使用resample

series.resample('15T')