有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)