python判断单元格是否为空,主要利用pandas的两个方法,先导入pandas模块
import pandas as pd
读取含有空值单元格的excel文件
一、判断一个单元格是否为空
判断单元格是否为空 isnull()方法
# isnull()判断单元格是否为空,为空返回true,不为空返回false
for i in range(0, 5):
if( pd.isnull(df.loc[i, "语文"]) ):
print("{}的语文成绩为NULL".format(df.loc[i, "姓名"]))
else:
print("{}的成绩正常。".format(df.loc[i, "姓名"]))
'''
运行结果:
小明的语文成绩为NULL
张三的成绩正常。
方旭的成绩正常。
晓红的成绩正常。
丽丽的成绩正常。
'''
判断单元格是否不为空 notnull()方法
# notnull()判断单元格是否不空,非空返回true,空返回false
for i in range(0, 5):
if( pd.notnull(df.loc[i, "语文"]) ):
print("{}的成绩正常。".format(df.loc[i, "姓名"]))
else:
print("{}的语文成绩为NULL".format(df.loc[i, "姓名"]))
'''
运行结果:
小明的语文成绩为NULL
张三的成绩正常。
方旭的成绩正常。
晓红的成绩正常。
丽丽的成绩正常。
'''
二、一次判断多个单元格是否都为空
isnull()/notnull() +any()
# 一次判断多个单元格是否都为空
print( df.loc[0, ["语文","数学"]].isnull().any() )
'''
运行结果
True
'''
上面这个例子其实经过以下过程:
- 先选择了两个单元格
- 用isnull()函数判断是否为空
- any()函数表示应用于所有单元格,根据所有 isnull() 的结果进行判定,有一个是true就true,全false才false
两个单元格里面有空的,也就是有true,说明这个区域内有空值,返回true。
下面这个例子返回false,说明isnull()全部返回false,也就是该区域内没有空值。
print( df.loc[[1,2],["语文","数学"]].isnull().any().any() )
'''
运行结果
False
'''