我有以下数据框:
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”条目来手动执行此操作,但是此方法将覆盖我已经拥有的条目。
有什么线索怎么做?谢谢!
最佳答案
我必须假设一个开始日期,我选择了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()
关于python - 上采样数据并进行插值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38641235/