Bog*_*ist 5 python numpy pandas
我有一个gappy时间序列存储在带有datetimeindex的pandas数据帧中.我现在想要识别时间序列中的间隙,以便识别连续的段以便单独处理它们(并且在某些情况下,将它们之间的间隙足够短的段粘合在一起).
我可以通过两种主要方式来做到这一点.第一种是使用各种方法重新索引以获得常规时间序列并观察间隙区域中的填充NA值.在我的情况下,导致许多额外的行(即一些冗长的间隙).然后,您仍需要执行额外步骤以识别连续段.
另一种方法,以及我目前正在使用的方法是使用np.diff来区分索引并使用np.where找到间隙.但是,有更多的本地熊猫方法吗?这似乎是一项相当普遍的任务.我注意到np.diff和pandas存在一些问题,包括numpy和pandas版本的一些组合,因此仅使用pandas解决方案是更可取的.
什么是完美的将是类似的
for segment in data.continuous_segments():
# Process each segment
Run Code Online (Sandbox Code Playgroud)
对于数据帧数据.
这可能对你有用:
df = pd.DataFrame([["2015-01-01",1],["2015-01-02",1],[np.nan,1],[np.nan,1],["2015-01-10",1],["2015-01-11",1]], columns = ['timestamp','value'])
continuous_segments = df[df.timestamp.notnull()].groupby(df.timestamp.isnull().cumsum())
for segment in continuous_segments:
print (segment[1])
timestamp value
0 2015-01-01 1
1 2015-01-02 1
timestamp value
4 2015-01-10 1
5 2015-01-11 1
Run Code Online (Sandbox Code Playgroud)