我有pandas dataframe我想在isnull()或否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')
我有一个错误:
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
正确的方法是什么?
谢谢。
使用 .
:
a = df_data.query('a.isnull()', engine='python')
print (a)
a
2 NaN
b = df_data.query('a.notnull()', engine='python')
print (b)
a
0 1.0
1 20.0
3 40.0
4 50.0
您还可以使用逻辑NaN != 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