Python 线性插值时间序列

Python 线性插值时间序列,python,pandas,Python,Pandas,我正在使用Pandas提取汇率数据。数据并非每天都有值。我想使用Pandasinteroplate函数来填写缺失的时间序列,以便索引中包含所有日期。例如,2010-01-09和2010-01-10都缺失。interoplate函数似乎什么也没做,但我不明白为什么 from pandas_datareader import data can = data.get_data_fred('DEXCAUS') can = can.interpolate(method='linear') can = c

我正在使用
Pandas
提取汇率数据。数据并非每天都有值。我想使用
Pandas
interoplate
函数来填写缺失的时间序列,以便索引中包含所有日期。例如,2010-01-09和2010-01-10都缺失。
interoplate
函数似乎什么也没做,但我不明白为什么

from pandas_datareader import data

can = data.get_data_fred('DEXCAUS')
can = can.interpolate(method='linear')
can = can.dropna()
print can.head(10)
输出:

            DEXCAUS
DATE               
2010-01-04   1.0377
2010-01-05   1.0371
2010-01-06   1.0333
2010-01-07   1.0351
2010-01-08   1.0345
2010-01-11   1.0317
2010-01-12   1.0374
2010-01-13   1.0319
2010-01-14   1.0260
2010-01-15   1.0287
期望输出:

            DEXCAUS
DATE               
2010-01-04   1.0377
2010-01-05   1.0371
2010-01-06   1.0333
2010-01-07   1.0351
2010-01-08   1.0345
2010-01-09   some value..
2010-01-10   some value..
2010-01-11   1.0317
2010-01-12   1.0374
2010-01-13   1.0319
2010-01-14   1.0260
2010-01-15   1.0287

您需要首先重新采样:

df.resample('D').interpolate(method='linear')
Out: 
             DEXCAUS
DATE                
2010-01-04  1.037700
2010-01-05  1.037100
2010-01-06  1.033300
2010-01-07  1.035100
2010-01-08  1.034500
2010-01-09  1.033567
2010-01-10  1.032633
2010-01-11  1.031700
2010-01-12  1.037400
2010-01-13  1.031900
2010-01-14  1.026000
2010-01-15  1.028700

您需要首先重新采样:

df.resample('D').interpolate(method='linear')
Out: 
             DEXCAUS
DATE                
2010-01-04  1.037700
2010-01-05  1.037100
2010-01-06  1.033300
2010-01-07  1.035100
2010-01-08  1.034500
2010-01-09  1.033567
2010-01-10  1.032633
2010-01-11  1.031700
2010-01-12  1.037400
2010-01-13  1.031900
2010-01-14  1.026000
2010-01-15  1.028700