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

前一段时间在用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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值