我正在过滤我的DataFrame,删除特定列的单元格值为None的行。
[:-1]
工作正常,但PyCharm告诉我:
PEP8:与False的比较应为'如果cond为False:'或'if not cond:'
但我想知道如何将其应用于我的用例?使用'not ...'或'is false'不起作用。我目前的解决方案是:
df = df[df['my_col'].isnull() == False]
答案 0 :(得分:3)
因此python具有短路逻辑运算符and
,or
,not
。这些在python中具有非常特殊的含义,无法覆盖(bool
必须返回a and/or b
而a
始终返回b
或~
或引发错误。
但是,python还具有可过载的布尔运算符&
(不是),|
(和),^
(或)和int
(xor)。
你可能会将它们识别为b = np.array([True, False, True]) & np.array([True, False, False])
# b --> [True False False]
b = ~b
# b --> [False True True]
位运算符,但是Numpy(以及因此pandas)使用它们来执行数组/系列布尔运算。
例如
df = df[~df['my_col'].isnull()]
因此你想要的是
== False
我同意PEP8,不要0
。