python - Python数据框将分钟数据转换为30分钟/小时
问题描述
我正在尝试将以分钟为单位收集的数据转换为 30 分钟和 1 小时的间隔。数据框是:
dateTime stepsDaily
2019-11-11 11:58:00 0
2019-11-11 12:00:00 7
2019-11-11 12:01:00 27
2019-11-11 12:08:00 0
2019-11-11 12:13:00 0
... ...
2020-07-26 14:04:00 0
2020-07-26 14:07:00 0
2020-07-26 14:08:00 0
2020-07-26 14:09:00 0
2020-07-26 14:10:00 0
我努力了
df_steps.dateTime = pd.to_datetime(df_steps.dateTime)
df_steps.set_index("dateTime", drop=True, inplace=True)
df_steps.sort_index(inplace=True)
df_steps30 = df_steps.groupby([df_steps.index.hour]).sum()
但这会返回
dateTime stepsDaily
0 8352
1 9905
2 9154
3 5695
4 5626
5 24485
6 94481
7 155755
8 152925
9 152124
10 183447
11 153881
12 183888
13 235785
14 292723
15 314227
16 276683
17 232000
18 227208
19 209065
20 119630
21 56282
22 18181
这不是我想要的。相反,我希望它分别返回数据框中所有天的每小时步数总和。
比如:
2019-11-11 10:00:00 100
2019-11-11 11:00:00 75
2019-11-11 13:00:00 27
2019-11-11 14:00:00 677
2019-11-11 15:00:00 3
知道我做错了什么吗?
解决方案
.resample()
是关键。
我假设 dateTime 和 stepsDaily 是您数据框中的普通列。因此,您可以将 dateTime 设为索引,然后以 1 小时的步骤重新采样:
df.set_index('dateTime').resample('1h').sum()
推荐阅读
- java - 何时使用 ScheduledThreadPoolExecutor 的“removeOnCancel”策略
- python - 如何将生成器类型转换为字符串?
- c# - 通过 CustomAttribute 值获取枚举?
- django - 我在 django 中匹配数据时出错
- python - 创建一个django程序,其中数据以表单形式输入,python代码使用数据创建图形,图形显示在同一个表单下方
- javascript - 类型“void”不可分配给芯片材料类型
- fabricjs - 无法为画布上的选定对象获取正确的坐标
- python - 从python中的API提取时如何解决next_token_error
- python - 将列添加到列表列表
- mysql - sql中的年龄月份和日期