我有以下数据框:
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'来手动完成。每个连续月份之间的条目,但此方法会覆盖我已有的条目。
有任何线索如何做到这一点?谢谢!
答案 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()
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()