处理工作时被要求生成有规律的空df,因为数据量太大,用for循环花费时间太长,经人指点使用np.repeat方法(for循环真是太费时间了,尤其是数据量大的时候,尽量不要使用)建立空的、结构完整的dataframe再将空dataframe与有数据的dataframe合并,起到更新dataframe的效果。
# 补缺测
# 新建空的dataframe(站点齐全)
data_time_list = list(data_time_list)
station_id = list(station_id)
df_id = np.repeat(data_time_list, len(station_id), axis=0)
df_time = np.repeat(list(station_id)*len(data_time_list), 1, axis=0)
df_null = pd.concat([pd.DataFrame(df_id), pd.DataFrame(df_time)], axis=1)
df_null.columns = ['data_time','id']
# 将有缺测情况的站点数据导入新建的df中,缺数据的站为none
df_data_all = pd.merge(df_null, df_data_all, how='outer', on=['id', 'data_time'])