我必须从Excel调用python脚本,我需要检查数据是否干净。
我将从excel文件中获取数据帧。一个不可接受的情况是在df中的一个特定列中有一个空值。
我想打印一条错误消息,并在该列中为空值时退出脚本。
类似的东西:
if df['columnX'] is empty
print "error message"
sys.exit()
不确定什么是处理它的有效方法
答案 0 :(得分:3)
您可以使用isnull
检查所有值是否为NaN
- 输出为布尔值掩码 - True
和False
值。
如果需要检查所有值是True
还是all
,如果需要检查是否至少有一个True
,则需要any
。
输出为标量True
或False
:
if df['columnX'].isnull().all():
print "error message"
sys.exit()
样品:
df = pd.DataFrame({'columnX':[np.nan] * 3})
print (df)
columnX
0 NaN
1 NaN
2 NaN
print (df['columnX'].isnull())
0 True
1 True
2 True
Name: columnX, dtype: bool
print (df['columnX'].isnull().all())
True
print (df['columnX'].isnull().any())
True
if df['columnX'].isnull().all():
print "error message"
sys.exit()
df = pd.DataFrame({'columnX':[np.nan] * 3 + [5.6]})
print (df)
columnX
0 NaN
1 NaN
2 NaN
3 5.6
print (df['columnX'].isnull())
0 True
1 True
2 True
3 False
Name: columnX, dtype: bool
print (df['columnX'].isnull().all())
False
print (df['columnX'].isnull().any())
True