Pandas:NULL的含义及使用时的注意事项

您所在的位置:网站首页 数据库中空值怎么表示出来 Pandas:NULL的含义及使用时的注意事项

Pandas:NULL的含义及使用时的注意事项

2024-07-10 22:17| 来源: 网络整理| 查看: 265

前一段时间在用Pandas处理数据的时候,遇到空值Null的时候出了一些匪夷所思的结果。后来发现是因为Pandas版本太低导致的。这篇博文只是想把遇到的一些问题整理出来,但是会使用Pandas最新版本(Pandas V1.1.5)

1. pandas中的NULL值及其判断

1) 首先Pandas中提供了专门的函数对空值进行判断,具体有isnull()、notnull()。 对于isnull()函数,如果元素为空值,而返回True。notnull()函数反之。如图1

图1

从图1中的结果可以看出,Pands会把np.nan、None以及数据缺失认为为NULL。这里要说明一下,无论是Pandas包里的运算,还是Python中的其他语句,都不能使用==进行空值判断。比如,针对图1中的a变量进行如图2中的运算,从结果上看,其运算结果均为False,所以==识别不出空值。pandas中有一个函数isin(),也不建议大家用这个函数来判断数据中是否包含空值? 可以参看博文https://blog.csdn.net/yeshang_lady/article/details/112207877

图2

在Python中,判断一个变量是否为空,需要用到is。具体如图3

图3

2)虽然np.nan和None都是空值,但是这两个变量类型不同。np.nan为float类型,而None为NoneType。下面我们将a变量中的各个元素的类型输出出来(图3)

图4

DataFrame或Series中含有空值,进行运算时如果稍不注意会导致错误,下面简单看个小例子(图5)

图5 

但这里要说明一点,如果DataFrame中的某一列或Series中的数据为数值类型,那么None会被转化成np.nan,若为Object类型,则None和np.nan保持各自类型。如图6

图6

2 涉及空值的计算

1) 对于Object类型的数据,尽可能使用Pandas给String提供的accessor。比如求字符串长度可以用图7解决。

图7

如果有定制化需求需要自定义函数时,需要在自定义函数体中处理空值。图7中的代码可以用如下自定义代码实现。

图8

2) 对于数值型数据,空值和任何数据进行数值运算结果仍为空值,一般不需要特殊处理。但如果要把数值型数据强制转化为字符串时,空值会被转化成“nan”(图9),这个要不要特殊处理,自行决定

图9

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3