gpt4 book ai didi

python - Pandas - 在时间桶中对行进行分组

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:09 24 4
gpt4 key购买 nike

我有一个包含数千行的数据框,如下所示:

    time                type      value
0 09:30:01.405735 EVENT_0 2.1
0 09:30:01.405761 EVENT_0 2.1
0 09:30:01.419743 EVENT_0 1.1
1 09:30:02.419769 EVENT_0 32.1
2 09:30:02.419775 EVENT_0 2.15
3 09:30:02.419775 EVENT_0 24.1
4 09:30:06.419775 EVENT_0 3.1
5 09:30:06.419793 EVENT_0 1.1
6 09:30:06.419793 EVENT_0 2.4
....

我们将“窗口”定义为间隔不超过 1 秒的连续事件列表(即,两个连续事件之间间隔 1 秒或更长时间会创建一个新窗口)

这里我们有 3 个窗口:

    time                type      value
0 09:30:01.405735 EVENT_0 2.1
0 09:30:01.405761 EVENT_0 2.1
0 09:30:01.419743 EVENT_0 1.1

====================================

1   09:30:02.419769     EVENT_0     32.1
2 09:30:02.419775 EVENT_0 2.15
3 09:30:02.419775 EVENT_0 24.1

====================================

4   09:30:06.419775     EVENT_0     3.1
5 09:30:06.419793 EVENT_0 1.1
6 09:30:06.419793 EVENT_0 2.4
....

我试图找到一种方法来计算每个窗口的“值”列的平均值,但找不到在 pandas 中正确执行此操作的方法。

最佳答案

假设您的时间列是日期时间格式,并且数据框是根据时间列排序的:

# calculate the windows, gives a unique number per entry associating it to its respective window
windows = (data.time.diff().apply(lambda x: x.total_seconds()) >= 1).astype(int).cumsum()
# group by these windows and compute the value mean
data.groupby(windows).value.mean()

关于python - Pandas - 在时间桶中对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com