使用大熊猫从给定日期列到不同日期列对数据进行重新采样和插值

时间:2018-08-13 20:48:37

标签: pandas date resampling

例如,我基本上可以找到转化次数和下/上采样次数每天日期范围到每月日期范围,或从每月/每年日期范围到每天使用熊猫的日期范围。

有没有一种方法可以给定任意几天的数据,就可以使用内插/外推将它们映射到不同的日子?

1 个答案:

答案 0 :(得分:1)

Index.unionreindexinterpolate

MCVE

创建玩具数据。每隔三天。

tidx = pd.date_range('2018-01-01', periods=3, freq='2D')
df = pd.DataFrame(dict(A=[1, 3, 5]), tidx)

df

            A
2018-01-01  1
2018-01-03  3
2018-01-05  5

这几天之间的新索引

other_tidx = pd.date_range(tidx.min(), tidx.max()).difference(tidx)

解决方案

创建一个新索引,该索引是旧索引和新索引的并集

union_idx = other_tidx.union(df.index)

当我们reindex这样做时,我们会得到

df.reindex(union_idx)

              A
2018-01-01  1.0
2018-01-02  NaN
2018-01-03  3.0
2018-01-04  NaN
2018-01-05  5.0

我们看到了预期的差距。现在我们可以使用interpolate。但是我们需要使用参数method='index'以确保我们相对于索引中的间隙大小进行插值。

df.reindex(union_idx).interpolate('index')

              A
2018-01-01  1.0
2018-01-02  2.0
2018-01-03  3.0
2018-01-04  4.0
2018-01-05  5.0

现在这些空白被填补了。

我们可以再次重新索引以减少到其他索引值

df.reindex(union_idx).interpolate('index').reindex(other_tidx)

              A
2018-01-02  2.0
2018-01-04  4.0