Python 重新索引为缺少的值提供值而不是NaN

Python 重新索引为缺少的值提供值而不是NaN,python,pandas,interpolation,missing-data,reindex,Python,Pandas,Interpolation,Missing Data,Reindex,我想用丢失的记录(或行)完成湿度百分比的时间序列。传感器设计为每15分钟记录一个平均值,这就是我的目标频率。这里是一个站的例子(在差距方面不是最好的…),但我有36个测量站,6个参数和超过24000个记录,每个都要均匀化 我选择datetime和%湿度列,例如: humdt = data["la-salade"][["datetime","humidite"]] datetime humidite 0 2019-07-09 08:30:00 8

我想用丢失的记录(或行)完成湿度百分比的时间序列。传感器设计为每15分钟记录一个平均值,这就是我的目标频率。这里是一个站的例子(在差距方面不是最好的…),但我有36个测量站,6个参数和超过24000个记录,每个都要均匀化

我选择datetime和%湿度列,例如:

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
我将datetime设置为一个索引:(到目前为止还可以)

除此之外,我还准备了一个符合我期望的日期时间范围(15分钟频率):

然后,我使用此范围重新索引湿度值(缺失时应为NaN):


结果,我不知从哪里得到了湿度值。。。甚至不是经典的线性插值(例如:08H30时87%和11H00时87%之间)。请帮帮我,我不知道发生了什么事。。。(还尝试合并和重新采样,因为此处的行为不符合预期)。谢谢大家!

您可以向df.reindex添加属性
fill\u value

humdt = humdt.reindex(pd.DatetimeIndex(date_rng["datetime"]), fill_value=np.nan)

这将用NaN填充新值

谢谢阿巴斯。我尝试了fill_value=np.nan(虽然它是默认属性,但验证它总是更好!),但我得到了相同的结果
>>humdt=humdt.reindex(pd.DatetimeIndex(date_rng[“datetime”]),fill_value=np.nan)>>>>>>>>>>>>>>humdt humidite日期时间2019-07-09 08:30:00 87.0 2019-07-09 08:45: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这意味着它没有添加值。它们已经存在于您的数据集中。好的,谢谢您的帮助。我很困惑,因为我创建这个子dataframe是为了只处理两列,datatime和一个参数。我不明白这些数据是关于什么的。。。我需要获得一个具有一致频率、记录值和NaN的数据帧,但肯定没有任何方法可以工作。我错过了一些东西。无法复制。。。删除字符串和日期时间值之间的所有来回后,重新索引会为所有新的时间戳提供NaN。感谢您尝试Serge!我还得到了这个问题(全部到NaN),在预期的日期时间和数据帧值之间进行了合并。
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"]
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
humdt = humdt.reindex(pd.DatetimeIndex(date_rng["datetime"]), fill_value=np.nan)