我有以下数据框:

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()


python - 上采样数据并进行插值-LMLPHP



可复制的代码

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/

10-12 16:37
查看更多