我正试图将以分钟为单位收集的数据转换为每隔30分钟1小时的一次。Dataframe是:
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知道我做错了什么吗?
发布于 2020-08-01 14:43:37
.resample()是关键。
我假设dateTime和stepsDaily是数据框架中的普通列。因此,您可以将dateTime变成一个索引,然后在1小时的步骤中重新采样:
df.set_index('dateTime').resample('1h').sum()https://stackoverflow.com/questions/63206013
复制相似问题