我需要对数据帧进行上采样,使得在当前索引(开始时均匀间隔)之间存在均匀间隔的整数步(大致)。具体来说,我有年度数据,我想重新采样,以便在每个当前行之间间隔14行。稍后将使用插值填充这些内容。
这是一个更好地说明问题的示例数据框:
A B C
1980-01-01 0 1.000000 -0.871623
1981-01-01 25 3.162278 -0.186602
etc...
我想要的是一种重新采样的方法,以便我得到类似的东西
A B C
1980-01-01 0 1.000000 -0.871623
1980-02-01 NaN NaN NaN
1980-03-01 NaN NaN NaN
1980-04-01 NaN NaN NaN
1980-05-01 NaN NaN NaN
1980-06-01 NaN NaN NaN
1980-07-01 NaN NaN NaN
1980-08-01 NaN NaN NaN
1980-09-01 NaN NaN NaN
1980-10-01 NaN NaN NaN
1980-11-01 NaN NaN NaN
1980-12-01 NaN NaN NaN
1981-01-01 25 3.162278 -0.186602
但是日期将年份大致均匀地划分为15个区间(而不是像这种情况那样被限制为大熊猫频率)。
答案 0 :(得分:0)
我提出了一个有效的解决方案,前提是您不介意从datetime格式转换索引。我确信可以转换回日期时间格式,但在我的情况下,这不是必需的。以下是该过程的示例(假设您有一个具有日期时间索引的数据框df
):
n_intervals = 15
delta = 1.0 / n_intervals
base_index = df.index.year
df.index = base_index
new_index = np.arange(base_index.min(), base_index.max()+delta, delta)
df = df.reindex(new_index, tolerance=0.000001, method='nearest')
df.interpolate('cubic', inplace=True)