1、修复原理
2、数据修复的代码
# -*- coding: UTF-8 -*- """ @Author :远方的星 @Time : 2021/7/5 22:50 @CSDN :https://blog.csdn.net/qq_44921056 @腾讯云 : https://cloud.tencent.com/developer/column/91164 """ import numpy as np data = [1360, 1359, 1336, 1325, 1295, 1297, 1299, 1281, 1270, 1265, 1267, 0, 0, 0, 1248, 1260, 1256, 1249, 1263, 1228, 1221, 0, 0, 0, 1229, 1220, 1221, 1246, 1228, 1239] # 得到数据长度 length = len(data) # 定义一个空列表用于存放差值数据 difference = [] for i in range(length): # 挑出为0的地方,即需要修复的数据 if data[i] == 0: # 计算预测值之前所有值的和 sum_1 = 0 for j in range(i): sum_1 += data[j] # 求去平均值 average = sum_1/(i+1) for k in range(i-1): a = data[k+1] - data[k] difference.append(a) # 求得变化量 difference_average = np.mean(difference) # 求得修复数据 data_fix = int(round(average + difference_average, 0)) # 使用修复数据替代原来的0值 data[i] = data_fix print('第{}位数据已经修复,修复的结果为{}'.format(i+1, data_fix)) print('数据全部修复后的结果为:', data)
3、数据修复前后的比较
在数据修复之前,可以使用拉依达准则
或者狄克逊准则
判断数据是否为异常数据。
为了方便表示,将异常数据表示为空数据。
- 修复前:
修复后: