2019-12-23(四)对DataFrame空值数据记录进行的
'''
上期回顾:
学习对DataFrame数据记录中含有空值记录的选择,并初次和.loc[]、.iloc[]见了个面!
本次:我们将继续深入学习对DataFrame数据记录进行的各种选择操作!
使用Python只有你想不到的,没有他做不到的!这就是开源的力量,分工合作的力量、群策群力的力量!
就好像是:晚上下班的路上你想起很久没有自己做过饭了,想做一桌丰盛的晚餐来犒赏一下努力的自己和家人,那你用不着买块田种地,然后等稻谷、蔬菜、葱蒜...熟了,再来生火开灶(C语言、汇编语言...),也不用再跑到市场上去买菜(C#、VB...)。你可以很方便地在朴朴APP上下单(方便快捷如:Python),等你到家时,订的生鲜已到家,你只需直接烹饪就可以了!
'''
#现在开我们这一次的学习,对于空值的直观了解,也可以使用.isnull().sum(),统计空值的数量
df_employee.isnull().sum()
'''
pd.isnull()函数也可以单独判断一个值、一个对象、一个DataFrame或Series是否为空值(nan、None),np.isnan()函数只能用于数值类型的nan判断,如果用于其它类型,则会出现错误!这与上一节提到的Pandas对象的.isna()不同,所以安全起见,在Pandas对象中我们一般使用.isnull(),以减少不必要的麻烦,曰:君子不立危墙下。
对某个值是否为空值进行判断,只用.isnull()函数,万万不可用 == np.nan() 或== None 来做,否则会出错的,因为空值并不能用判断相等的“==”正确识别。
'''
pd.isnull(df_employee.iloc[4, 2])
pd.isnull(df_employee.iloc[2, 4])
np.isnan(df_employee.iloc[4, 2])
np.isnan(df_employee.iloc[2, 4])
pd.isnull(df_employee['特点'])
#将含有空值列找出来,返回list对象,tolist()还是挺好用的,在列表式推导、迭代中经常用到。
df_employee.columns[df_employee.isnull().any()].tolist()
df_employee.isnull().any()
type(df_employee.isnull().any())
type(df_employee.columns[df_employee.isnull().any()].tolist())
#显示各列中含有空值记录的索引
df_employee[df_employee.isnull().values==True].index.unique()
df_employee[df_employee.isnull().values==True].index.unique().tolist()
'''本次主要就是加深一下大家对于空值的理解,下一次我们将学习数据加工中重要的一环:对于空值的处理,包括去除.dropna()和填充.fillna()的使用!'''