Python 查询无值
我有一个包含不同数据类型列的数据框,我需要使用Python 查询无值,python,pandas,Python,Pandas,我有一个包含不同数据类型列的数据框,我需要使用pandas.query来过滤这些列 列可能包含缺少的值:NaN、None和NaT,我需要显示包含这些值的行。在传递给pandas.query的表达式中是否有这样做的方法?我知道可以使用不同的方法来完成,但我需要知道通过查询是否可行 对于布尔列,我可以使用一种变通方法,说明: df.query('col not in (True, False)') 但这不适用于其他类型的列。非常感谢您的帮助,包括解决方法。NaN不等于其本身,因此您可以简单地测试列
pandas.query
来过滤这些列
列可能包含缺少的值:NaN
、None
和NaT
,我需要显示包含这些值的行。在传递给pandas.query的表达式中是否有这样做的方法?我知道可以使用不同的方法来完成,但我需要知道通过查询是否可行
对于布尔列,我可以使用一种变通方法,说明:
df.query('col not in (True, False)')
但这不适用于其他类型的列。非常感谢您的帮助,包括解决方法。NaN
不等于其本身,因此您可以简单地测试列是否等于其本身以过滤它。这似乎也适用于None
,虽然我不知道为什么,但在评估过程中的某个时候,它可能会被转换为NaN
df.query('col == col')
对于datetimes,这是可行的,但感觉很粗糙,可能有更好的方法
df.query('col not in [@pd.NaT]')
你能使用np.isnan
?@M.Massias OP要求一个与df.query
方法兼容的查询语句,这里的问题是如何使用numexpr
传递一个可以正常工作的语句太糟糕了,第二种方法不适用于NaN和None!然而,第一个对我来说非常有效,第二个对我来说毫无作用。