Python 使用查询函数检查列是否为空

Python 使用查询函数检查列是否为空,python,pandas,dataframe,null,Python,Pandas,Dataframe,Null,我有一个dataframe,我想用isnull()或not isnull()条件对其执行查询函数,如下所示: In [67]: df_data = pd.DataFrame({'a':[1,20,None,40,50]}) In [68]: df_data Out[68]: a 0 1.0 1 20.0 2 NaN 3 40.0 4 50.0 如果我使用此命令: df_data.

我有一个dataframe,我想用isnull()或not isnull()条件对其执行查询函数,如下所示:

In [67]: df_data = pd.DataFrame({'a':[1,20,None,40,50]})
In [68]: df_data
Out[68]:       a
         0   1.0
         1  20.0
         2   NaN
         3  40.0
         4  50.0
如果我使用此命令:

df_data.query('a isnull', engine='python')
df_data.query('a isnull()', engine='python')
或此命令:

df_data.query('a isnull', engine='python')
df_data.query('a isnull()', engine='python')
我得到一个错误:

In [75]: df_data.query('a isnull', engine='python')  
File "<unknown>", line 1    a isnull           
SyntaxError: invalid syntax

In [76]: df_data.query('a isnull()', engine='python')  
File "<unknown>", line 1    a isnull ()           
SyntaxError: invalid syntax
[75]中的
:df_data.query('a isnull',engine='python')
文件“”,第1行a为空
SyntaxError:无效语法
[76]中的df_data.query('a isnull()',engine='python')
文件“”,第1行为空()
SyntaxError:无效语法
正确的方法是什么

谢谢。

使用

a = df_data.query('a.isnull()')
print (a)
    a
2 NaN

b = df_data.query('a.notnull()')
print (b)
      a
0   1.0
1  20.0
3  40.0
4  50.0

您还可以使用逻辑
NaN!=南

a = df_data.query('a != a')
print (a)
    a
 2 NaN

b = df_data.query('a == a')
print (b)
      a
0   1.0
1  20.0
3  40.0
4  50.0
df_data.query('a.isnull()')
在没有engine='python'的情况下工作