用 NaN 填充日期间隙并插入 5 分钟分辨率数据

Fill date gap with NaN and interpolate 5 min resolution data

我正在使用 python 并且 我需要用 NaN 值填补日期空白,我的数据如下所示:

"Date & Time","High Temp - °C","Low Temp - °C"
"12/4/19 00:00","0.0","-0.1"
"12/4/19 00:05","-0.1","-0.1"
"12/4/19 00:10","0.1","-0.1"
"12/4/19 00:25","0.1","0.1"
"12/4/19 00:30","0.2","0.1"

我希望它们像这样:

"Date & Time","High Temp - °C","Low Temp - °C"
"12/4/19 00:00","0.0","-0.1"
"12/4/19 00:05","-0.1","-0.1"
"12/4/19 00:10","0.1","-0.1"
"12/4/19 00:15","NaN","NaN"
"12/4/19 00:20","NaN","NaN"
"12/4/19 00:25","0.1","0.1"
"12/4/19 00:30","0.2","0.1"

之后我想对数据进行插值以替换缺失值。

我试过的是:

#%%
from pathlib import Path
import pandas as pd

data=pd.read_csv(Path().joinpath('C:....d_data\..._data.csv'))


data['Date & Time']=pd.to_datetime(data['Date & Time'],format='%m/%d/%Y %hh:%mm')
data = data.sort_values(by=['Date & Time'], ascending=[True])
data.set_index('Date & Time', inplace=True)
print (data)

您可以resample数据如下:

import pandas as pd

# reading the csv 
df = pd.read_csv('test.csv',parse_dates=['Date & Time'],index_col=0)

# resampling the data for every 5 min
df = df.resample('5T').mean()
print(df)

输出:

 Date & Time               High Temp - °C  Low Temp - °C                        
 2019-12-04 00:00:00             0.0           -0.1
 2019-12-04 00:05:00            -0.1           -0.1
 2019-12-04 00:10:00             0.1           -0.1
 2019-12-04 00:15:00             NaN            NaN
 2019-12-04 00:20:00             NaN            NaN
 2019-12-04 00:25:00             0.1            0.1
 2019-12-04 00:30:00             0.2            0.1