我正在尝试使用Pandas时间序列获取下面显示的指标的插值。
test.csv
year,metric
2020,290.72
2025,221.763
2030,152.806
2035,154.016
代码
import pandas as pd
df = pd.read_csv('test.csv', parse_dates={'Timestamp': ['year']},
index_col='Timestamp')
据我所知,这给了我一个以每年1月1日为指数的时间序列。现在我需要填写缺失年份的值(2021年,2022年,2023年,2024年,2026年等)
Pandas有办法做到这一点吗?
答案 0 :(得分:0)
如果你使用的是更新版本的Pandas,你的DataFrame对象应该有一个插值方法,可以用来填补空白。
答案 1 :(得分:0)
事实证明,插值只填充值,没有值。在我上面的例子中,我要做的是重新索引,以便间隔为12个月。
# reindex with interval 12 months (M: month, S: beginning of the month)
df_reindexed = df.reindex(pd.date_range(start='20120101', end='20350101', freq='12MS'))
# method=linear works because the intervals are equally spaced out now
df_interpolated = df_reindexed.interpolate(method='linear')