我想这个问题可能很简单,但我无法弄清楚。
如何在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

答案 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')