Rtu*_*tut 8 python dataframe pandas
我使用以下代码从pandas dataframe获取带有一些值的行.我需要将此代码转换为pandas.query().
results= rs_gp[rs_gp['Col1'].notnull()]
Run Code Online (Sandbox Code Playgroud)
当我转换为: results= rs_gp.query('Col1!=None')
它给出了错误'None is not defined'.有人可以帮忙吗
谢谢,Rtut
Max*_*axU 10
我们可以使用以下事实NaN != NaN:
In [1]: np.nan == np.nan
Out[1]: False
Run Code Online (Sandbox Code Playgroud)
因此,将列与自身进行比较将仅返回非NaN值:
rs_gp.query('Col1 == Col1')
Run Code Online (Sandbox Code Playgroud)
演示:
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
Run Code Online (Sandbox Code Playgroud)
小智 10
我不知道我的解决方案是否在这个问题的第一个答案之后添加到 pandas 中,但 notnull() 和 isnull() 现在是 pandas 中查询的有效选项。
df.query('Col1.isnull()', engine='python')
Run Code Online (Sandbox Code Playgroud)
这将返回该行单元格中值为空的所有行。
df.query('Col1.notnull()', engine='python')
Run Code Online (Sandbox Code Playgroud)
反之亦然,此查询将返回值不存在的每一行的每一行。
另外:声明引擎并将其设置为 python 将允许您在查询中使用 pandas 函数。
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |