Att*_*nen 6 python numpy pandas
如何检查给定值是否为NaN?
例如if (a == np.NaN)(不起作用)
在您投票之前,请注意:
isnan方法会抛出像string这样的数据类型的错误必须有一个干净的方法来检查给定的值是否为NaN?
大熊猫有isnull,notnull,isna,和notna
这些函数适用于数组或标量.
a = np.array([[1, np.nan],
[None, '2']])
Run Code Online (Sandbox Code Playgroud)
pd.isna(a)
# same as
# pd.isnull(a)
array([[False, True],
[ True, False]])
Run Code Online (Sandbox Code Playgroud)
pd.notnull(a)
# same as
# pd.notna(a)
array([[ True, False],
[False, True]])
Run Code Online (Sandbox Code Playgroud)
DataFrame(或Series)方法b = pd.DataFrame(a)
Run Code Online (Sandbox Code Playgroud)
b.isnull()
# same as
# b.isna()
0 1
0 False True
1 True False
Run Code Online (Sandbox Code Playgroud)
b.notna()
# same as
# b.notnull()
0 1
0 True False
1 False True
Run Code Online (Sandbox Code Playgroud)
您可以使用NaN!= 的inate属性NaN
所以如果是的话a == a会回来的FalseaNaN
这甚至可以用于字符串
例:
In[52]:
s = pd.Series([1, np.NaN, '', 1.0])
s
Out[52]:
0 1
1 NaN
2
3 1
dtype: object
for val in s:
print(val==val)
True
False
True
True
Run Code Online (Sandbox Code Playgroud)
这可以以矢量化的方式完成:
In[54]:
s==s
Out[54]:
0 True
1 False
2 True
3 True
dtype: bool
Run Code Online (Sandbox Code Playgroud)
但你仍然可以isnull在整个系列中使用该方法:
In[55]:
s.isnull()
Out[55]:
0 False
1 True
2 False
3 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
UPDATE
正如@piRSquared指出,如果你比较None==None这将返回True,但pd.isnull将返回True所以这取决于你是否要正确对待None作为NaN你仍然可以使用==比较或者pd.isnull如果你想治疗None的NaN
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |