python使用字典数据生成Series列表并用isnull/notnull方法检测是否为空

之前我们分析过,Series数组有点像是python中列表和字典的融合体,因此除了使用列表来对Series数据进行初始化操作之外,我们也可以使用字典数据结构来进行初始化的参数输入。

我们可以发现,字典的key成为了Series数组的index,字典的value成为了对应的values。
我们也可以在Series数组初始化的时候对index参数进行赋值指定数组的索引名称,这样就存在一个问题了,字典中的key和index参数不一致怎么办?结论是以index参数优先级为高,如果字典中的key在index中出现,那么他对应的key能够生效,如果字典中的key在index中不存在,那么这个字典中的条目将不会被写进Series数组当中,如果index中存在一个字典中不存在的key,那么这个index将被保留,而他的初始值将被赋值为NaN。

为了检测某个值是否为NaN,Series数组还提供了isnull方法来进行判断。这个方法将遍历全部的index,最终返回一个Series数组,里面的value存储着对应的index是否为空。与他对应的是notnull()方法,原理是一样的,只不过返回的布尔值是互为求反的。

我们可以使用以下代码来演示:

import pandas as pd
dict_data = {
	"Beijing":1000,
	"Shanghai":2000,
	"Shenzhen":500
}
data1 = pd.Series(dict_data)
print(data1)
print(data1.isnull())
print(data1.notnull())
index_list = ["Guangzhou","Hangzhou","Beijing","Shenzhen"]
data2 = pd.Series(dict_data,index=index_list)
print(data2)
print(data2.isnull())
print(data2.notnull())

运行以上代码我们可以得到以下的结果:

Beijing     1000
Shanghai    2000
Shenzhen     500
dtype: int64
Beijing     False
Shanghai    False
Shenzhen    False
dtype: bool
Beijing     True
Shanghai    True
Shenzhen    True
dtype: bool
Guangzhou       NaN
Hangzhou        NaN
Beijing      1000.0
Shenzhen      500.0
dtype: float64
Guangzhou     True
Hangzhou      True
Beijing      False
Shenzhen     False
dtype: bool
Guangzhou    False
Hangzhou     False
Beijing       True
Shenzhen      True
dtype: bool
[Finished in 5.9s]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值