原理
直观地理解拉格朗日插值法:如何直观地理解拉格朗日插值法? – 知乎 (zhihu.com)
代码实现
import pandas as pd
from scipy.interpolate import lagrange #导入拉格朗日函数
import numpy as np
import matplotlib.pyplot as plt
mydata = pd.read_excel('数据清洗.xlsx', sheet_name='sales_')
mydata1 = mydata.copy()
for i in range(len(mydata1)):
if pd.isna(mydata1.loc[i, 'sales']) == True:
if i < 5:
y = mydata1['sales'][list(range(0, i)) + list(range(i+1, i+6))]
elif i > len(mydata1) - 6:
y = mydata1['sales'][list(range(i-5, i)) + list(range(i+1, len(mydata1)))]
else:
y = mydata1['sales'][list(range(i-5, i)) + list(range(i+1, i+6))]
y = y[y.notnull()] # 取出空值
mydata1.loc[i, 'sales'] = lagrange(y.index, list(y))(i)
mydata1
补充阅读:
文章出处登录后可见!
已经登录?立即刷新