删除python中小于某个值的行

JAG*_*024 19 python row multiple-columns pandas

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

我有一个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 
Run Code Online (Sandbox Code Playgroud)

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

df2 = result[result['Value'] != 10]
Run Code Online (Sandbox Code Playgroud)

但是当我尝试添加<=限定符时,我收到错误消息 SyntaxError: invalid syntax

df3 = result[result['Value'] ! <= 10]  
Run Code Online (Sandbox Code Playgroud)

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

Jay*_*ikh 20

而不是这个

df3 = result[result['Value'] ! <= 10]  
Run Code Online (Sandbox Code Playgroud)

使用

df3 = result[~(result['Value'] <= 10)]  
Run Code Online (Sandbox Code Playgroud)

它会工作.或者只是使用

df3 = result[result['Value'] > 10]  
Run Code Online (Sandbox Code Playgroud)


piR*_*red 7

python不用!来否定.它使用not. 看到这个答案
在这个特定的例子中!=是一个两个字符串的意思not equal.这不是否定的==.

选项1
这应该有效,除非你有NaN

result[result['Value'] > 10]
Run Code Online (Sandbox Code Playgroud)

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

result[~(result['Value'] <= 10)]
Run Code Online (Sandbox Code Playgroud)


小智 6

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

df3 = result.drop(result[result['Value'] < 10].index, inplace = True)
Run Code Online (Sandbox Code Playgroud)