【问题标题】:Remove rows in python less than a certain value删除python中小于某个值的行
【发布时间】:2017-06-07 14:42:50
【问题描述】:

感觉这个问题以前一定有人回答过,但是堆栈溢出找不到答案!

我有一个看起来像这样的数据框result,我想删除所有小于或等于10

的值
>>> result
                       Name              Value      Date
189                   Sall                19.0  11/14/15
191                     Sam               10.0  11/14/15
192                 Richard               21.0  11/14/15
193                  Ingrid                4.0  11/14/15 

此命令有效并删除所有 10 的值:

df2 = result[result['Value'] != 10]

但是当我尝试添加 SyntaxError: invalid syntax

df3 = result[result['Value'] ! <= 10]  

我觉得可能有一个非常简单的解决方案。提前致谢!

【问题讨论】:

    标签: python pandas row multiple-columns


    【解决方案1】:

    我有另一个建议,可能会有所帮助

    df3 = result.drop(result[result['Value'] < 10].index, inplace = True)
    

    【讨论】:

      【解决方案2】:

      不是这个

      df3 = result[result['Value'] ! <= 10]  
      

      使用

      df3 = result[~(result['Value'] <= 10)]  
      

      它会起作用的。 或者干脆使用

      df3 = result[result['Value'] > 10]  
      

      【讨论】:

        【解决方案3】:

        python 不使用! 来否定。它使用notSee this answer
        在此特定示例中,!= 是一个包含两个字符的字符串,表示not equal。这不是==的否定。

        选项 1
        这应该可以工作,除非你有NaN

        result[result['Value'] > 10]
        

        选项 2
        使用一元运算符~ 否定布尔系列

        result[~(result['Value'] <= 10)]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-07
          • 2013-11-02
          相关资源
          最近更新 更多