找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2275|回复: 2

[求助] 两个问题:有关return 和 isnull的问题

2

主题

3

帖子

3

积分

贫民

积分
3
javyru 发表于 2018-3-13 17:19:08 | 显示全部楼层 |阅读模式

以下这段代码是通过拉格朗日函数填补缺省值,有两个不理解的点
第一个点:
第四行“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)

请大神们帮忙,非常感谢!



回复

使用道具 举报

2

主题

3

帖子

3

积分

贫民

积分
3
javyru  楼主| 发表于 2018-3-16 12:13:31 | 显示全部楼层
求助,有人能解答吗?谢谢谢谢!
回复 支持 反对

使用道具 举报

0

主题

20

帖子

20

积分

贫民

积分
20
iacxc 发表于 2018-3-19 21:27:55 | 显示全部楼层
没用过这个。
不过如果data[i]是null的话data[i][j]就要抛出异常了,而data[i].isnull()也许会返回一个空的list?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表