gpt4 book ai didi

python - 查找 pandas 中用户定义窗口的平均值

转载 作者:行者123 更新时间:2023-12-01 02:35:38 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,其中包含带有时间索引(以秒为单位)的原始心率数据。

我正在尝试对数据进行分类,以便可以获得用户定义窗口的平均值(例如 10 秒) - 不是滚动平均值,只是 10 秒的平均值,然后是接下来的 10 秒,等等。

import pandas as pd

hr_raw = pd.read_csv('hr_data.csv', index_col='time')
print(hr_raw)

heart_rate
time
0.6 164.0
1.0 182.0
1.3 164.0
1.6 150.0
2.0 152.0
2.4 141.0
2.9 163.0
3.2 141.0
3.7 124.0
4.2 116.0
4.7 126.0
5.1 116.0
5.7 107.0

使用上面的示例数据,我希望能够设置用户定义的窗口大小(让我们使用 2 秒)并生成一个新的数据帧,该数据帧的索引为 2 秒增量,并在时间下降时平均“heart_rate”值进入该窗口(并且应该继续到数据框的末尾)。

例如:

      heart_rate
time
2.0 162.40
4.0 142.25
6.0 116.25

我似乎只能找到根据预定数量的箱(例如制作直方图)对数据进行箱的方法,并且这只返回计数/频率。

谢谢。

最佳答案

groupby 应该可以做到。

df.groupby((df.index // 2 + 1) * 2).mean()

heart_rate
time
2.0 165.00
4.0 144.20
6.0 116.25

请注意,我们的答案之间存在轻微差异的原因是排除了上限。这意味着,在 2.0 秒时获取的读数将被考虑用于 4.0 秒的时间间隔。这就是通常的做法,使用 TimeGrouper 的类似解决方案将产生相同的结果。

关于python - 查找 pandas 中用户定义窗口的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46271328/

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