熊猫 - 加速计算

时间:2017-05-21 02:29:48

标签: python pandas

我有一个数据框,'数据'如下:

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秒的时间,创建一个只包含在该时间间隔内的行的新帧,然后获取最大值'值'柱。

1 个答案:

答案 0 :(得分:3)

您可以在pandas中使用滚动功能:

col = data.rolling(window='5s', on='Time').max()
data['aggregate'] = col['Value']