面板数据时间序列(添加带有插值的时间戳)

Panel Data Time Series (Add TimeStamps with interpolated values)

我有一个缺少时间戳的面板数据集,其中包括数据框中某些身份的值。

Index      Identiy Value
2015-01-01   A      13
2017-01-01   A      14
2018-01-01   A      24 
2019-01-01   A      30
2015-01-01   B      10
2016-01-01   B      12
2017-01-01   B      18
2018-01-01   B      25 
2019-01-01   B      30

如何自动检查某些时间戳(间隙)是否丢失,然后使用内插值创建一行。更简单,我如何在数据框中添加一行包含以下信息。

Index         Identity        Value
2016-0101         A         13,5 (Interpolated between the gap (13,5)

这应该只对少于 6 个缺失点的间隙进行。

我理解插值函数,但不幸的是不能将它嵌入到行的创建中。 有人可以帮忙吗?

使用 GroupByresample 每年,所以我们将缺失的年份添加到每个 Identity 的数据中,然后 interpolate 最后将索引设置为开头pd.offsets.YearBegin 年份:

dfn = df.groupby('Identiy').apply(lambda x: x.resample('Y').first().interpolate(limit=5).ffill())

dfn.index = dfn.index.droplevel(0) - pd.offsets.YearBegin()

           Identiy  Value
2015-01-01       A   13.0
2016-01-01       A   13.5
2017-01-01       A   14.0
2018-01-01       A   24.0
2019-01-01       A   30.0
2015-01-01       B   10.0
2016-01-01       B   12.0
2017-01-01       B   18.0
2018-01-01       B   25.0
2019-01-01       B   30.0