在 pandas 查询NaN和其他名称
问题说明
说我有一个数据框df
,其中的列value
包含一些浮点值和一些NaN
.
Say I have a dataframe df
with a column value
holding some float values and some NaN
. How can I get the part of the dataframe where we have NaN
using the query syntax?
例如,以下内容不起作用:
The following, for example, does not work:
df.query( '(value < 10) or (value == NaN)' )
我得到name NaN is not defined
(与df.query('value ==NaN')
相同)
一般来讲,有什么方法可以在查询中使用numpy名称,例如inf
,nan
,pi
,e
等吗?
Generally speaking, is there any way to use numpy names in query, such as inf
, nan
, pi
, e
, etc.?
正确答案
通常,您可以使用@local_variable_name
,因此类似
In general, you could use @local_variable_name
, so something like
>>> pi = np.pi; nan = np.nan
>>> df = pd.DataFrame({"value": [3,4,9,10,11,np.nan,12]})
>>> df.query("(value < 10) and (value > @pi)")
value
1 4
2 9
可以工作,但是nan
不等于它本身,因此value == NaN
始终为false.解决这个问题的一种方法是使用该事实,然后将value != value
用作isnan
检查.我们有
would work, but nan
isn't equal to itself, so value == NaN
will always be false. One way to hack around this is to use that fact, and use value != value
as an isnan
check. We have
>>> df.query("(value < 10) or (value == @nan)")
value
0 3
1 4
2 9
但是
>>> df.query("(value < 10) or (value != value)")
value
0 3
1 4
2 9
5 NaN
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /reply/detail/tanhcfieac
-
YouTube API 不能在 iOS (iPhone/iPad) 工作,但在桌面浏览器工作正常?
it1352 07-30 -
iPhone,一张图像叠加到另一张图像上以创建要保存的新图像?(水印)
it1352 07-17 -
保持在后台运行的 iPhone 应用程序完全可操作
it1352 07-25 -
使用 iPhone 进行移动设备管理
it1352 07-23 -
在android同时打开手电筒和前置摄像头
it1352 09-28 -
扫描 NFC 标签时是否可以启动应用程序?
it1352 08-02 -
检查邮件是否发送成功
it1352 07-25 -
Android微调工具-删除当前选择
it1352 06-20 -
希伯来语的空格句子标记化错误
it1352 06-22 -
Android App 和三星 Galaxy S4 不兼容
it1352 07-20