一、简介
有时我们用pandas读取Excel去获取某列或者某几列的值,并对该列的值进行处理时,一般都会先判断该列是否有空值,若有空值对其进行处理后再让程序往下走,否则不做判断可能程序会报错,比如用正则表达式去匹配该列的所有单元格的值,这时若某个单元格为空值则会报错。
二、思路
我们可以将空值找出,并做判断,若不为空再进行匹配;
正常情况pandas读取的空值都会显示NaN,若我们用df[i] == np.nan 去判断则显示为False,i这里代表索引。达不到我们想要的目的,建议用df.isnull()进行判断。
三、方法
例如:
这里我们知道第二行为空值,于是
import pandas as pd
import numpy as np
df = pd.read_excel('demo001.xlsx')['信息内容']
print(df)
print('*'*50)
if df[1] == np.nan:
print(df[1])
else:
print('不能用np.nan直接判断')
#返回结果
0 你好,csdn博客
1 NaN
2 123456我们
3 helloworld
4 python读取数据
Name: 信息内容, dtype: object
*****************************************************
不能用np.nan直接判断
修改后的代码
import pandas as pd
import numpy as np
df = pd.read_excel('demo001.xlsx')['信息内容']
print(df)
print('*'*50)
if df.isnull().any(): #判断该列是否有空值,若有这返回True
print(df[pd.isnull(df)]) #若该列某个单元格为空值,则打印该单元格的信息
#返回结果
0 你好,csdn博客
1 NaN
2 123456我们
3 helloworld
4 python读取数据
Name: 信息内容, dtype: object
*******************************************************
1 NaN
Name: 信息内容, dtype: object
注意: df.isnull.any() 判断dataframe中所有的列是否有空值,若有则该列返回True,没有则该列返回False。