将时间序列数据裁剪到最近的小时或最近的日期

Clipping timeseries data to nearest hour or the nearest day

我有一组 5 个时间序列数据帧,分辨率为 15 分钟,但它们的结束日期和时间不同。但是,开始日期和时间是相同的。所以,我更愿意将它们剪裁成相同的长度。

然后,我想重塑数据以查看每周模式或 14 天模式。

数据如下所示:

我认为你所说的裁剪是指对日期重新采样并取最后一个值。 (如有错误请指正

要重新采样,您可以使用 pandas 中的 .resample() 方法(在使用此方法之前将 时间戳列设置为索引 ),然后是 .last()取最后一个值。

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame({
...     'Timestamp':pd.date_range('2021-06-21 23:07', periods = 200, freq='15min'),
...     'Speed':range(200)
>>> })
>>> print(df)
              Timestamp  Speed
0   2021-06-21 23:07:00      0
1   2021-06-21 23:22:00      1
2   2021-06-21 23:37:00      2
3   2021-06-21 23:52:00      3
4   2021-06-22 00:07:00      4
..                  ...    ...
195 2021-06-23 23:52:00    195
196 2021-06-24 00:07:00    196
197 2021-06-24 00:22:00    197
198 2021-06-24 00:37:00    198
199 2021-06-24 00:52:00    199

[200 rows x 2 columns]
>>> df_grouped = df.set_index('Timestamp').resample('1H').last()
>>> print(df_grouped.head(10))
                     Speed
Timestamp                 
2021-06-21 23:00:00      3
2021-06-22 00:00:00      7
2021-06-22 01:00:00     11
2021-06-22 02:00:00     15
2021-06-22 03:00:00     19
2021-06-22 04:00:00     23
2021-06-22 05:00:00     27
2021-06-22 06:00:00     31
2021-06-22 07:00:00     35
2021-06-22 08:00:00     39