Μy 数据集由时间序列组成,这些时间序列是来自传感器(加速度计、陀螺仪、磁力计)的测量值。我需要创建窗口以提取特征并创建特征向量。问题是采样率不规则。 例如,传感器可能会停止记录 1 分钟,然后再次继续。我想基于时间戳创建
2 seeconds
窗口,但只针对连续的秒数。我的数据集示例:
**Timestamp x y z**
2022-12-25 08:55:31 1.106326 -1.667923 0.352001
2022-12-25 08:55:31 0.659319 -0.369386 0.559248
2022-12-25 08:55:31 0.462288 -0.747311 -0.049593
2022-12-25 08:55:31 0.792116 -1.437709 0.702323
2022-12-25 08:55:31 0.880261 -0.185562 1.129537
2022-12-25 08:55:32 -0.042303 0.474306 0.762134
2022-12-25 08:55:32 -0.097722 0.413519 0.693540
2022-12-25 08:55:32 -0.084058 0.441366 0.955718
2022-12-25 08:55:32 -0.119469 0.261690 1.096841
2022-12-25 08:55:32 -0.107756 0.319304 1.090497
2022-12-25 08:55:32 -0.091866 0.373503 1.034103
2022-12-25 08:56:59 0.341448 0.085186 1.297256
2022-12-25 08:56:59 0.426420 0.233355 1.137589
2022-12-25 08:56:59 0.313631 0.165005 0.920337
2022-12-25 08:56:59 0.461801 -0.005398 1.346575
2022-12-25 08:57:00 1.150247 -0.665053 0.202337
我还需要在间隙点将数据帧拆分为两个数据帧(例如,当有一分半钟没有记录时)。
到目前为止,我已经将数据帧拆分为多个数据帧,每个数据帧都包含相同秒数的记录。这是我的代码:
def create_windows(df):
grouped = df.groupby('Seconds')
dfs = [grouped.get_group(x) for x in grouped.groups]
ls = []
for i in range(len(dfs)-1):
a = pd.concat([dfs[i], dfs[i+1]], axis=0)
ls.append(a)
我的成绩是:
**Seconds x y z**
2022-12-25 08:55:24 1.000126 -1.102270 0.227957
2022-12-25 08:55:24 0.872452 -0.747067 -0.476837
2022-12-25 08:55:24 0.734745 -0.864248 -0.090860
2022-12-25 08:55:24 1.083604 -1.301008 0.451095
2022-12-25 08:55:25 0.459849 -1.184315 0.344436
2022-12-25 08:55:25 -0.028884 -0.918935 0.478209
2022-12-25 08:55:25 0.355386 -0.998021 -0.362340
**Seconds x y z **
2022-12-25 08:55:25 0.938607 -0.928207 0.069052
2022-12-25 08:55:25 1.156865 -0.720959 0.349072
2022-12-25 08:55:25 0.931287 -1.360330 0.592462
2022-12-25 08:55:25 0.362462 -0.977769 0.517280
2022-12-25 08:55:26 1.638277 -1.305400 0.142283
2022-12-25 08:55:26 0.679326 -0.734867 -0.002257
2022-12-25 08:55:26 0.738405 -0.601064 -0.321806