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

标签 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

最佳答案

您还可以通过构造新的 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,并添加列名称。

关于Python:如何将每小时值拆分为 15 分钟的桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488241/

相关文章:

python - TypeError: start() 恰好接受 1 个参数(给定 0)?

python - 如何处理通过将isbnlib.meta与 Pandas 一起应用返回的错误

python - 在网格化数据的 4D numpy 数组中查找不规则区域(纬度/经度)

pandas - 将数据映射到地面实况列表

python - 将数据类型系列转换为日期时间

python - couchDB 、 python 和身份验证

python - 在 wsgi 中导入 python 模块时出现 500 内部服务器错误

python - 如何使用一个月内的日期范围提取特征?

python - 如何在 Pandas 中一起使用 distinct 和 where 子句?

python - 如何在 Seaborn 按 YearMonth 订购 X 轴