Mat*_*ias 6 python dataframe pandas
我正在过滤我的 DataFrame 删除那些特定列的单元格值为 None 的行。
df = df[df['my_col'].isnull() == False]
Run Code Online (Sandbox Code Playgroud)
工作正常,但 PyCharm 告诉我:
PEP8:与 False 的比较应该是 'if cond is False:' 或 'if not cond:'
但我想知道我应该如何将它应用到我的用例中?使用“not ...”或“is False”不起作用。我目前的解决方案是:
df = df[df['my_col'].notnull()]
Run Code Online (Sandbox Code Playgroud)
FHT*_*ell 10
所以python有短路逻辑运算符not
, and
, or
。这些在 python 中具有非常特定的含义并且不能被覆盖(not
必须返回 abool
并且a and/or b
总是返回a
orb
或抛出错误。
但是,python 也有可重载的布尔运算符~
(not)、&
(and)、|
(or) 和^
(xor)。
您可能会将它们识别为int
按位运算符,但 Numpy(以及因此熊猫)使用它们来执行数组/系列布尔运算。
例如
b = np.array([True, False, True]) & np.array([True, False, False])
# b --> [True False False]
b = ~b
# b --> [False True True]
Run Code Online (Sandbox Code Playgroud)
因此你想要的是
df = df[~df['my_col'].isnull()]
Run Code Online (Sandbox Code Playgroud)
我同意 PEP8,不要这样做== False
。
归档时间: |
|
查看次数: |
9705 次 |
最近记录: |