我想用缺失的记录(或行)来完成我的%湿度时间序列。传感器被设计成每15分钟记录一个平均值,所以这是我的目标频率。这里的一个站的例子(不是最好的差距......),但我有36站的测量,6个参数和超过24 000记录,每个均匀。
我选择了日期时间和%湿度的列,例如 。
humdt = data["la-salade"][["datetime","humidite"]]
datetime humidite
0 2019-07-09 08:30:00 87
1 2019-07-09 11:00:00 87
2 2019-07-09 17:30:00 82
3 2019-07-09 23:30:00 80
4 2019-07-11 06:15:00 79
5 2019-07-19 14:30:00 39
我将日期时间设置为索引:(到目前为止,它的工作原理)。
humdt["datetime"] = pd.to_datetime(humdt["datetime"])
humdt = humdt.set_index("datetime",drop=True)
humidite
datetime
2019-07-09 08:30:00 87
2019-07-09 11:00:00 87
2019-07-09 17:30:00 82
2019-07-09 23:30:00 80
2019-07-11 06:15:00 79
2019-07-19 14:30:00 39
除此之外,我准备了一个与我的期望值相匹配的日期时间范围(15分钟的频率)。
date_rng = pd.period_range(start=debut, end=fin, freq='15min').strftime('%Y-%m-%d %H:%M:%S')
date_rng = pd.DataFrame(date_rng)
date_rng.columns = ["datetime"]
然后,我使用这个范围来重新索引我的湿度值(当缺失时,期望NaN):
humdt = humdt.reindex(pd.DatetimeIndex(date_rng["datetime"]))
humidite
datetime
2019-07-09 08:30:00 87.0
2019-07-09 08:45:00 88.0
2019-07-09 09:00:00 88.0
2019-07-09 09:15:00 88.0
2019-07-09 09:30:00 89.0
2019-07-09 09:45:00 89.0
2019-07-09 10:00:00 88.0
2019-07-09 10:15:00 88.0
2019-07-09 10:30:00 88.0
2019-07-09 10:45:00 88.0
2019-07-09 11:00:00 87.0
结果,我得到的湿度值无处可寻......甚至不是一个经典的线性插值(例如:08H30的87%和11H00的87%之间)。请帮助我,我不知道这是怎么回事...... (也试过合并和重新取样,因为这里的行为不符合预期)。谢谢你!我想完成我的时间序列。
你可以添加属性 fill_value
到df.reindex。
humdt = humdt.reindex(pd.DatetimeIndex(date_rng["datetime"]), fill_value=np.nan)
这将用NaN填充新的值