|
以下这段代码是通过拉格朗日函数填补缺省值,有两个不理解的点
第一个点:
第四行“return lagrange(y.index, list(y))(n) ”这句话(n)代表的是填补哪个缺省值,请问这个表达方式什么时候才会用到?以前自定义函数都没有遇到过,如果不写(n)就运行错误。
第二个点:
第八行:“if (data[i].isnull())[j]:”这句语句为什么不能写成"if (data[i][j].isnull()):",是isnull这个方法就必须这么用吗?很不理解。
def ployinterp_column(s, n, k=5):
y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))]
y = y[y.notnull()] #剔除空值
return lagrange(y.index, list(y))(n)
for i in data.columns:
for j in range(len(data)):
if (data[i].isnull())[j]: #如果为空即插值。
data[i][j] = ployinterp_column(data[i], j)
请大神们帮忙,非常感谢!
|
|