我使用以下格式处理timeseries数据:
[timestamp][rain value]
我想在timeseries数据中计算降雨事件,我们将降雨事件定义为主数据帧的子数据帧,其中包含零降雨值之间的非零值
我通过在第一个非零值之前获得降雨值的索引,成功地获得了数据帧的开始:
^{pr2}$我搞不懂怎么找到结局。我在找一些函数zero():
end=cur.rain.values.zero()[0][0]
在rain列中找到下一个零值并将其标记为子数据帧的结尾
另外,因为我的数据是每隔15分钟采样的,这意味着15分钟的短暂间歇会给我带来两次降雨事件,而不是一次,这在现实中是不正确的。这意味着我想定义一些时间段-例如6小时-来分离降雨事件。在
在伪代码中,我想的是(但由于找不到子数据帧的end
),所以无法执行:
start = df.rain.values.nonzero()[0][0] - 1
cur = df[start:]
end=cur.rain.values.zero()[0][0]
temp = df[end:]
z = temp.rain.values.nonzero()[0][0] - 1
if timedelta (z-end) >=6hrs:
end stays as endpoint of cur
else:
z is new endpoint, find next nonzero to again check
所以我想我的问题是,如果我不想遍历所有行,如何找到子数据帧的end
我用伪代码把一次降雨事件的结束定义为,比如说,6小时零雨,这是否正确。在
目前没有回答
相关问题 更多 >
编程相关推荐