面板数据时间序列(添加带有插值的时间戳)
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 个缺失点的间隙进行。
我理解插值函数,但不幸的是不能将它嵌入到行的创建中。
有人可以帮忙吗?
使用 GroupBy
和 resample
每年,所以我们将缺失的年份添加到每个 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
我有一个缺少时间戳的面板数据集,其中包括数据框中某些身份的值。
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 个缺失点的间隙进行。
我理解插值函数,但不幸的是不能将它嵌入到行的创建中。 有人可以帮忙吗?
使用 GroupBy
和 resample
每年,所以我们将缺失的年份添加到每个 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