大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的尧都网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!python3检测空值的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
pandas 空值定义为numpy.nan
1、对整体的series或Dataframe判断是否未空,用isnull() eg: pd.isnull(df1) #df1是dataframe变量 2、math.isnan() 可以判断np.float64类型的空 3、pd.isna() 直接判断一列 4、对单独的某个值判断,可以用 np.isnan() eg: np.isnan(df1.ix[0,3]) #对df1的第0行第3列判断
# 关于NaN的判断
python在数据预处理的时候,经常遇到需要对空值进行处理的地方。
空值在python中的表现一般为:
1、None
2、False
3、''
4、nan
前3个很容易判断,直接=就可以了,第四种比较蛋疼,因为你会发现,它无法用==进行判断(这个跟nan的原因有关),这里要从nan的是啥说起。
NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个表述inf,inf和nan的不同在于,inf是一个超过浮点表示范围的浮点数(其本质仍然是一个数,只是他无穷大,因此无法用浮点数表示,比如1/0),而nan则一般表示一个非浮点数(比如无理数)
在数学上inf==inf,且inf == inf+X(X为任意浮点数),而nan != nan,因此在python中判断一个数是否是nan,可以直接判断他是否与自身相等。
>>> np.nan == np.nan False
这也是变量≠自身的一个特例,因此使用这个性质可以判断这个数是否为nan。
nan的类型,如果硬要归类的话,应该更像浮点型。
>>> np.nan nan >>> type(np.nan)
要注意的是,nan的类型是float,当对nan进行强制类型转换时,转换为整数型时会报错,一般的报错是如下情况:
>>> int(np.nan) Traceback (most recent call last): File "", line 1, in ValueError: cannot convert float NaN to integer >>> long(np.nan) Traceback (most recent call last): File " ", line 1, in ValueError: cannot convert float NaN to integer >>> int('nan') Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'nan'
如果是报上面的错前两个错,则是因为被转型的已经是一个float的nan(np.nan),如果是报第三个错,则被转换的是字符串'nan'
而将nan或'nan'从字符串到float转换时,都不会出现错误。这也是有时候会隐藏的错误,因为numpy的ndarray是支持复合类型的(如object),如果是一个非法字符被先后转换为float,string,则会表现出是一个string,如果进行强转,则报第三个错。而且此时不能用x!=x判断。
现在python的大部分普通运算中已经不会出现nan,但是在numpy包中,从list转换nparray时,如果遇到类型不匹配,或其他问题导致转换失败时,仍然会以nan填充,而不是报错。在处理这类问题,则需要设置一些缺失值处理方法,这里pandas包里提供了很多,最常用的就是用空值或0替换掉。
感谢各位的阅读!看完上述内容,你们对python3检测空值的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联-成都网站建设公司行业资讯频道。