有DataFrame
类型数据data
,其中有index
列为日期,另有value
列,补充缺失日期列index
代码如下:
import pandas as pd
import datetime
#创建DataFrame数据,包括index列和value列,其中index列为日期,但是格式为string格式
data = pd.DataFrame(data={'index':['2020-10-09','2020-10-10','2020-10-17','2020-10-15'],'value':range(4)})
#计算最小日期和最大日期
date_start = data['index'].min()
date_end = data['index'].max()
#根据最小日期和最大日期,计算日期间隔,由于date_start和date_end为string类型,因此需要先更改为日期类型
delta = datetime.datetime.strptime(date_end, "%Y-%m-%d")-datetime.datetime.strptime(date_start, "%Y-%m-%d")
for i in range(1,delta.days+1):
date = (datetime.datetime.strptime(date_end, "%Y-%m-%d")-datetime.timedelta(days=i)).strftime('%Y-%m-%d')
#如果数据缺失,则补数
if(date not in data['index'].values):
new_date = pd.DataFrame(data={'index':date,'value':-1},index=[data.shape[0]])
data = data.append(new_date,ignore_index=True)
#按照日期列排序
data = data.sort_values('index').reset_index(drop=True)