例如,我基本上可以找到转化次数和下/上采样次数每天日期范围到每月日期范围,或从每月/每年日期范围到每天使用熊猫的日期范围。
有没有一种方法可以给定任意几天的数据,就可以使用内插/外推将它们映射到不同的日子?
答案 0 :(得分:1)
Index.union
,reindex
和interpolate
创建玩具数据。每隔三天。
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