Upsample pandas DataFrame,具有当前频率的整数倍

时间:2015-10-20 21:45:46

标签: python pandas

我需要对数据帧进行上采样,使得在当前索引(开始时均匀间隔)之间存在均匀间隔的整数步(大致)。具体来说,我有年度数据,我想重新采样,以便在每个当前行之间间隔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个区间(而不是像这种情况那样被限制为大熊猫频率)。

1 个答案:

答案 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)