如何将数据帧分割成持续时间为N秒的数据块?

2024-04-26 23:56:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含时间戳值的列的数据集,我想将它拆分为较小的数据集,每个数据集的持续时间为5秒。你知道吗

数据集如下所示:

Timestamp            A            B
1                    1            2
2                    3            7
2.5                  8            10
3                    3            5
7                    1            2
8                    3            7
9                    8            10
10                   3            5
11.6                 3            5
11.8                 9            10
16                   8            10
17                   9            10
18                   8            10

我需要把它分成以下几部分:

Timestamp            A            B
1                    1            2
2                    3            7
2.5                  8            10
3                    3            5

Timestamp            A            B
7                    1            2
8                    3            7
9                    8            10
10                   3            5
11.6                 3            5
11.8                 9            10

Timestamp            A            B
16                   8            10
17                   9            10
18                   8            10

我该怎么做?你知道吗

编辑1:

我已经更新了上面的样本,以更好地代表我所需要的。 @ansev基于Grouper提供的答案将持续时间为30s的文件分成6个文件,第一个5s,第二个5s,依此类推。但是,我需要的是每个文件的持续时间由它的第一个实例计算。 例如,在提供的示例中,第二个数据集包含范围为[7,12)而不是[5, 10)的数据。你知道吗

这件事可以按如下方式进行。有人能帮我一个有效的方法吗?你知道吗

complete = {}
start = 0
i = 0
base = data.loc[0,'Timestamp']
for index, row in data.iterrows():
    if row['Timestamp'] - base > 5 :
        complete[i] = data.loc[start:index-1, :]
        start = index
        base = row['Timestamp']
        i+=1

Tags: 文件数据编辑databaseindex时间代表