except Exception as e: print("缺失严重, 插值未定义:", e) return input_data data_pollution_IDW = get_IDW(data_pollution) # 空间全局: 迭代函数法,缺失特征作为y,其他特征作为x data_pollution_Iterative = IterativeImputer( max_iter=10).fit_transform(data_pollution) data_pollution_Iterative = pd.DataFrame(data_pollution_Iterative) # 对结果的0值取np.nan data_pollution_KNN.replace(0, np.nan, inplace=True) data_pollution_ewm.replace(0, np.nan, inplace=True) data_pollution_IDW.replace(0, np.nan, inplace=True) data_pollution_Iterative.replace(0, np.nan, inplace=True) # 合并相同方法的结果 data_pollution_KNN = data_pollution_KNN.set_index(data_pollution.index) data_pollution_KNN.columns = data_pollution.columns # data_pollution_KNN["日期合并用"] = data_pollution_KNN.index data_pollution_ewm = data_pollution_ewm.set_index(data_pollution.index) data_pollution_ewm.columns = data_pollution.columns # data_pollution_ewm["日期合并用"] = data_pollution_ewm.index data_pollution_IDW = data_pollution_IDW.set_index(data_pollution.index) data_pollution_IDW.columns = data_pollution.columns # data_pollution_IDW["日期合并用"] = data_pollution_IDW.index data_pollution_Iterative = data_pollution_Iterative.set_index( data_pollution.index) data_pollution_Iterative.columns = data_pollution.columns # data_pollution_Iterative["日期合并用"] = data_pollution_Iterative.index
if 'add' in CCCOLT: del data_Terra_Iterative[CCCOLT] data_Terra_Iterative = pd.DataFrame(data_Terra_Iterative) data_Terra_Iterative = data_Terra_Iterative.set_index(data_Terra.index) data_Terra_Iterative.columns = ['NDVI_0'] # data_Terra_Iterative["日期合并用"] = data_Terra_Iterative.index # 对结果的0值取np.nan data_Aqua_KNN.replace(0, np.nan, inplace=True) data_Terra_KNN.replace(0, np.nan, inplace=True) data_Aqua_ewm.replace(0, np.nan, inplace=True) data_Terra_ewm.replace(0, np.nan, inplace=True) data_Aqua_IDW.replace(0, np.nan, inplace=True) data_Terra_IDW.replace(0, np.nan, inplace=True) data_Aqua_Iterative.replace(0, np.nan, inplace=True) data_Terra_Iterative.replace(0, np.nan, inplace=True) """ data_KNN = pd.merge(data_Terra_KNN,data_Aqua_KNN,how='right',on='日期合并用') data_ewm = pd.merge(data_Terra_ewm,data_Aqua_ewm,how='right',on='日期合并用') data_IDW = pd.merge(data_Terra_IDW,data_Aqua_IDW,how='right',on='日期合并用') data_Iterative = pd.merge(data_Terra_Iterative,data_Aqua_Iterative,how='right',on='日期合并用') """ data_KNN = pd.concat([data_Terra_KNN, data_Aqua_KNN], axis=1, sort=True) data_ewm = pd.concat([data_Terra_ewm, data_Aqua_ewm], axis=1, sort=True) data_IDW = pd.concat([data_Terra_IDW, data_Aqua_IDW], axis=1, sort=True) data_Iterative = pd.concat([data_Terra_Iterative, data_Aqua_Iterative], axis=1, sort=True) # 合并不同方法下的A/T为一个文件
ignore_na=False, adjust=True).mean() # 参数设置不同 # 空间局部: IDW data_input_IDW = get_IDW(data_input) # 空间全局: 迭代函数法,缺失特征作为y,其他特征作为x data_input_Iterative = IterativeImputer( max_iter=10).fit_transform(data_input) data_input_Iterative = pd.DataFrame(data_input_Iterative) # 对结果的0值取np.nan data_input_KNN.replace(0, np.nan, inplace=True) data_input_ewm.replace(0, np.nan, inplace=True) data_input_IDW.replace(0, np.nan, inplace=True) data_input_Iterative.replace(0, np.nan, inplace=True) # 合并相同方法的结果 data_input_KNN = data_input_KNN.set_index(data_input.index) data_input_KNN.columns = data_input.columns data_input_KNN["日期合并用"] = data_input_KNN.index data_input_ewm = data_input_ewm.set_index(data_input.index) data_input_ewm.columns = data_input.columns data_input_ewm["日期合并用"] = data_input_ewm.index data_input_IDW = data_input_IDW.set_index(data_input.index) data_input_IDW.columns = data_input.columns data_input_IDW["日期合并用"] = data_input_IDW.index data_input_Iterative = data_input_Iterative.set_index(data_input.index) data_input_Iterative.columns = data_input.columns data_input_Iterative["日期合并用"] = data_input_Iterative.index