问题描述
我被这个问题难住了,不知道该怎么问。我有一个时间戳表作为列标题。每行都有一个纬度/经度点和时间温度。数据仅以 3 小时为增量,我想要完成的是获得整个时期的每小时温度。我已经能够用数据之间的时间创建一个列。
这是该数据框的示例
Latitude | Longitude | 2021-6-11 10:00 | 2021-6-11 11:00 | 2021-6-11 12:00 | 2021-6-11 13:00
34.698848 | -104.9723 | 83.03 | 0 | 0 | 92.93
34.702147 | -104.9177 | 81.95 | 0 | 0 | 92.93
我想要完成的是显示零到直到温度从 10:00 到 13:00 的列,如 92.93-83.03 = 9.9 除以 3 对于两个时隙 = 3.3。输出数据帧应如下所示
Latitude | Longitude | 2021-6-11 10:00 | 2021-6-11 11:00 | 2021-6-11 12:00 | 2021-6-11 13:00
34.698848 | -104.9723 | 83.03 | 86.33 | 86.93 | 92.93
34.702147 | -104.9177 | 81.95 | 85.61 | 89.27 | 92.93
我的数据框在 72 小时内每小时继续使用列,但只有每第三列有一个值。我该如何实现?
解决方法
您基本上是在描述固定间隔的线性插值。
以下应该适用于您的数据框 df
:
df = df.where(df!=0) # replace 0 with nan
df = df.interpolate(axis=1) # linear interpolation over nan values
我的 2 美分:如果温度为 0°F,最好直接使用 nan
值而不是 0
值创建新列。