上采样数据和插值

时间:2016-07-28 15:51:56

标签: python pandas interpolation

我有以下数据框:

Month   Col_1    Col_2

1       0,121    0,123
2       0,231    0,356
3       0,150    0,156
4       0,264    0,426
...

我需要将其重新采样为每周分辨率并在点之间进行插值。后一部分,插值是直截了当的。另一方面,重新索引部分有点棘手,至少对我而言。

如果我使用DataFrame.reindex()方法,它只会清除数据帧中的所有条目。我试图通过使用.loc()创建新的NaN'来手动完成。每个连续月份之间的条目,但此方法会覆盖我已有的条目。

有任何线索如何做到这一点?谢谢!

1 个答案:

答案 0 :(得分:1)

我必须假设一个开始日期,我选择了2009-12-31

要让resample生效,您需要pd.DateTimeIndex

start_date = pd.to_datetime('2009-12-31')
df.Month = df.Month.apply(lambda x: start_date + pd.offsets.MonthEnd(x))
df = df.set_index('Month')

df.resample('W').interpolate()

enter image description here

可复制代码

from StringIO import StringIO
import pandas as pd

text = """Month   Col_1    Col_2
1       0,121    0,123
2       0,231    0,356
3       0,150    0,156
4       0,264    0,426"""

df = pd.read_csv(StringIO(text), decimal=',', delim_whitespace=True)

start_date = pd.to_datetime('2009-12-31')
df.Month = df.Month.apply(lambda x: start_date + pd.offsets.MonthEnd(x))
df = df.set_index('Month')

df.resample('W').interpolate()