pandas query None values



我有一个具有不同dtype列的数据框架,我需要使用pandas.query来过滤列。

列可以包括缺失的值:NaNNoneNaT,我需要显示包含这些值的行。是否有一种方法可以在传递给pandas.query的表达式中做到这一点?我知道它可以使用不同的方法完成,但我需要知道它是否可以通过query

对于布尔列,我可以使用一种变通方法:

df.query('col not in (True, False)')

,但这不适用于其他类型的列。

NaN不等于它自己,所以您可以简单地测试一个列是否等于它自己来过滤它。这似乎也适用于None,尽管我不确定为什么,它可能在评估过程中的某个时刻被转换为NaN

 df.query('col == col')

对于日期时间,这是有效的,但是感觉很粗糙,可能有更好的方法。

df.query('col not in [@pd.NaT]')

最新更新