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

时间:2020-02-19 16:43:36

标签: python pandas panel

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

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个点的缺口进行。

我了解插值函数,但不幸的是无法将其放入行的创建中。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

每年将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