请问python列表推导式中的同名变量为啥可以判断不同?

yanyu
  • 18

在一份学习资料中看到如下代码:

def MissingPercent(df,x):
    missing_values = df[x].map(lambda x: int(x!=x))
    return sum(missing_values)*1.0/df.shape[0]
Rate = MissingPercent(Data,col)
Rate

其中Data是一个DataFrame,有点奇怪x!=x中的两个x分别指什么呢?
代码本身是运行成功可得到具体的比例的。
补充:该函数的功能是返回数据框Data中col列的缺失值比例
列中的值应该是类别而非数值型

回复
阅读 414
2 个回答

我的回答有误,理解错了,看题主的解答.

明白了,因为在python中nan不等于nan
即:

import numpy as np
np.nan == np.nan

# False

所以被作者用来做缺失值的检测
感谢楼上热心坛友的解答!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏