当前位置: 首页 > 面试题库 >

使用ix或iloc检查pandas DataFrame中的特定值(单元格中)是否为NaN不能正常工作

林烨华
2023-03-14
问题内容

可以说我有以下内容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

第二种选择(不起作用)

我认为下面的选项usingix可以正常工作,但事实并非如此:

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

我也尝试iloc了相同的结果:

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

但是,如果我使用ix或检查这些值,则会iloc得到:

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

那么, 为什么第二种选择不起作用? 是否可以NaN使用ix或检查值iloc


问题答案:

尝试这个:

In [107]: pd.isnull(df.iloc[1,0])
Out[107]: True

更新: 在较新的Pandas版本中,使用pd.isna():

In [7]: pd.isna(df.iloc[1,0])
Out[7]: True


 类似资料:
  • 问题内容: 我只想检查Pandas系列中的单个单元格是否为null,即检查值是否为。 所有其他答案适用于序列和数组,但不适用于单个值。 我已经试过,,。是否只有一个单一值的解决方案? 问题答案: 尝试这个:

  • 问题内容: 我也有类似的问题,这个。区别在于我必须按位置选择行,因为我不知道索引。 我想做类似的事情,但是iloc不允许这种访问。如果执行此操作,则会出现有关链接索引的警告。 问题答案: 对于混合位置和索引,请使用。但是您需要确保索引不是整数,否则会引起混乱。 更新: 或者,尝试 例:

  • 我有一个类似于这个和这个的问题。区别在于我必须按位置选择行,因为我不知道索引。 我想做一些类似于,但iloc不允许这种访问。如果我执行,则会出现关于链接索引的警告。

  • 问题内容: 在Python Pandas中,检查DataFrame是否具有一个(或多个)NaN值的最佳方法是什么? 我知道函数,但是这会为每个元素返回一个布尔值的DataFrame。此处的帖子也无法完全回答我的问题。 问题答案: jwilner的反应是现场的。我一直在探索是否有更快的选择,因为根据我的经验,求平面数组的总和(奇怪)比计数快。这段代码似乎更快: 速度稍慢,但当然还有其他信息-的数量。

  • 我基本上是在尝试做一个向前填充的归因。下面是它的代码。 我在日志里发现了奇怪的错误。 编辑:问题与如何使用Python识别spark数据帧中的null&nan有关。 文件“C:\spark\python\pyspark\sql\dataframe.py”,第318行,显示打印(self._jdf.showstring(n,20)) 文件“C:\spark\python\lib\py4j-0.10.

  • 我正在使用Java Apache POI库。在这里,我想在下面的方法(getExcellContent)中检查给定的单元格是否为空。我如何检查? 如果传递的单元格为空,则我收到致命错误,如果我使用的是getCellType()(“int getType = sheet1.getRow(row).getCell(col).getCellType();”)。我想在使用getCellType之前检查给定