我有一个空气污染的时间序列数据,其中有几个缺失的间隙,如:
Date AMB_TEMP CO PM10 PM2.5
2010-01-01 0 8 10 ... 15
2010-01-01 1 10 15 ... 20
...
2010-01-02 0 5 ...
2010-01-02 1 ... 20
...
2010-01-03 1 4 13 ... 34
要指定,这里是数据链接:shorturl.at/blBN1
间隙由几个连续或不连续的NAs组成,R-like做了一些有用的统计:
通常,如果我使用df.interpolate(limit=1)
,
缺少多个间隙的间隙也将被插值
所以我想一个更好的方法来插值只有一个缺失的间隙,就是得到间隙id
为此,我将不同大小的间隙分组,并使用以下函数:
cum = df.notna().cumsum()
cum[cum.duplicated()]
结果是:
PM2.5
2019-01-09 13:00:00 205
2019-01-10 15:00:00 230
2019-01-10 16:00:00 230
2019-01-16 11:00:00 368
2019-01-23 14:00:00 538
...
2019-12-02 10:00:00 7971
2019-12-10 09:00:00 8161
2019-12-16 15:00:00 8310
2019-12-24 12:00:00 8498
2019-12-31 10:00:00 8663
如何像这样获得每个间隙中第一个缺失值的索引?
PM2.5 gap size
2019-01-09 13:00:00 1
2019-01-10 15:00:00 2
2019-01-16 11:00:00 1
2019-01-23 14:00:00 1
...
2019-12-02 10:00:00 1
2019-12-10 09:00:00 1
2019-12-16 15:00:00 1
2019-12-24 12:00:00 1
2019-12-31 10:00:00 1
但是当我使用cum[cum.duplicated()].groupby(cum[cum.duplicated()]).count()
时,索引将丢失
有更好的解决方案吗
或如何逐案插入?
有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐