在pandas DataFrame中使用ix或iloc来检查特定值(在单元格中)是否为NaN的方法不起作用。

15 浏览
0 Comments

在pandas DataFrame中使用ix或iloc来检查特定值(在单元格中)是否为NaN的方法不起作用。

假设我有以下的pandas DataFrame:

import pandas as pd
df = pd.DataFrame({"A":[1,pd.np.nan,2], "B":[5,6,0]})

它的样子如下:

>>> df
     A  B
0  1.0  5
1  NaN  6
2  2.0  0

第一个选项

我知道一种检查特定值是否为NaN的方法,如下所示:

>>> df.isnull().ix[1,0]
True

第二个选项(不起作用)

我认为下面的选项,使用ix,也应该起作用,但实际上并不起作用:

>>> df.ix[1,0]==pd.np.nan
False

我还尝试了使用iloc得到相同的结果:

>>> df.iloc[1,0]==pd.np.nan
False

然而,如果我使用ixiloc检查这些值,我会得到:

>>> df.ix[1,0]
nan
>>> df.iloc[1,0]
nan

所以,为什么第二个选项不起作用?是否可以使用ixiloc来检查NaN值?

0