我有一个数据框,'数据'如下:
data.head(3)
Time Value
0 01:00:00.125 5
1 01:02:03.145 3
2 01:02:03.651 9
我正在尝试创建一个新列,在每一行上提供最高的“价值”。对于现有行和该行之前在当前行的时间戳之前发生5秒或更短时间的所有行。我目前的方法是一个非常慢的循环,我想知道是否有更快的方法?
作为参考,我当前的代码循环遍历所有行,获取当前时间,计算当前时间前5秒的时间,创建一个只包含在该时间间隔内的行的新帧,然后获取最大值'值'柱。
答案 0 :(得分:3)
您可以在pandas中使用滚动功能:
col = data.rolling(window='5s', on='Time').max()
data['aggregate'] = col['Value']