熊猫-如何在Apply函数内部识别nans?

时间:2019-04-27 03:21:24

标签: python pandas

我正在逐行编写复杂的规则,为此,我正在使用df.apply。在此函数内部,条件之一是检查MEASUREMENT列中的值之一是否为空白/空/ nan。我该怎么做呢?看起来确实很容易,但是我无法使其正常工作。我知道我可以使用其他矢量化方法来检查nan,但是我需要编写复杂的规则,因此我使用的是df.apply。

我的数据如下:

const userSchema = mongoose.Schema({ 
  friends: [{
    type: mongoose.Schema.Types.ObjectId, ref: 'User', require: false
  }],
  incomingFriendRequests:[{
    type: mongoose.Schema.Types.ObjectId, ref: 'User', require: false
  }],
  online: {type: Boolean, require: true}
});

我的代码如下

MEASUREMENT VALUE
Name1       0.1
Name2       0.2
            0.3
Name4       0.2
231         0.4

它应该打印0.3。

注意: MEASUREMENT列具有混合数据类型。我尝试将其加载为str和默认情况下,但该条件仍然不起作用。安装Anaconda时,我正在使用Python 3.7。

我已经尝试了所有方法,但无法解决。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

python -m http.server 8000不等于任何值,包括自身。因此,您可以像这样检查:

NaN

但是,在已知值是数字的情况下,if row['MEASUREMENT'] != row['MEASUREMENT']: 是更好的方法(即更具可读性)。

math.isnan()

答案 1 :(得分:3)

写类似的东西:

if x == np.nan:

然后想知道为什么它不能按预期工作是一个常见错误。

在处理Pandas数据帧时,也可以使用pandas.isnull(),根据the documentation,它可以处理类似数组的对象。 该语句将变为:

if pd.isnull(row['MEASUREMENT']):