【问题标题】:Filter Pandas data frame based on criteria - fails on NaN values根据条件过滤 Pandas 数据框 - NaN 值失败
【发布时间】:2016-03-01 14:39:17
【问题描述】:

我正在尝试根据标准(Python 2.7)过滤 Pandas 数据框:

data[data['a']=='bbb']

但系列数据['a'] 中的某些值是 NaN,我收到错误消息: invalid type comparison.

如何忽略它并将 NaN 视为不符合条件从而将其过滤掉?

谢谢!!

【问题讨论】:

    标签: python python-2.7 pandas


    【解决方案1】:

    重新分配列类型如下:

    df['a'] = df['a'].astype('O')
    

    这应该可以解决问题。

    【讨论】:

      【解决方案2】:

      你可以试试notnull:

      data[(data['a']=='bbb') & (data['a'].notnull())]
      

      示例:

      print data
            a
      0   bbb
      1   bbb
      2   bbb
      3   bbb
      4   bbb
      5   bbb
      6   bbb
      7   NaN
      8     a
      9     a
      10  bbb
      
      print data[(data['a']=='bbb') & (data['a'].notnull())]
            a
      0   bbb
      1   bbb
      2   bbb
      3   bbb
      4   bbb
      5   bbb
      6   bbb
      10  bbb
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-29
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2021-12-10
        • 2017-07-12
        相关资源
        最近更新 更多