python - Pandas.dataframe.query() - 获取非空行(Pandas等效于SQL:“IS NOT NULL”)

原文 标签 python pandas dataframe

我将使用以下代码从PANDAS数据框中获取具有一些值的行。我需要将此代码转换为pandas.query()。

results= rs_gp[rs_gp['Col1'].notnull()]

当我转换为:results= rs_gp.query('Col1!=None')
它给了我一个错误“没有定义”。有人能帮忙吗?
谢谢,
RTUT

最佳答案

我们可以利用以下事实:

In [1]: np.nan == np.nan
Out[1]: False

因此,将列与自身进行比较只会返回非NaN值:
rs_gp.query('Col1 == Col1')

演示:
In [42]: df = pd.DataFrame({'Col1':['aaa', np.nan, 'bbb', None, '', 'ccc']})

In [43]: df
Out[43]:
   Col1
0   aaa
1   NaN
2   bbb
3  None
4
5   ccc

In [44]: df.query('Col1 == Col1')
Out[44]:
  Col1
0  aaa
2  bbb
4
5  ccc

相关文章:

python - 通过对角线旋转数据框

python - 熊猫日期条件计算

python - 通过textinput添加新项目时,阻止QScrollArea项目跳来跳去

python - 难以理解@property如何知道属性是哪个变量?

python - 熊猫-通过每种可能的按键组合进行汇总

python - 熊猫:检查json对象中是否存在dataframe列

dataframe - 如何更改Julia DataFrame中的列顺序?

python - 如何在Python数据框中读取大块数据?

python - Python Regex:获取除字符串外的所有内容

python - 决策树学习中当前节点到下一节点的特征组合:对确定潜在的交互作用有用吗?