Python Pandas:获取DataFrame的行,其中列不为null

时间:2018-04-05 13:15:30

标签: python pandas dataframe

我正在过滤我的DataFrame,删除特定列的单元格值为None的行。

[:-1]

工作正常,但PyCharm告诉我:

  

PEP8:与False的比较应为'如果cond为False:'或'if not cond:'

但我想知道如何将其应用于我的用例?使用'not ...'或'is false'不起作用。我目前的解决方案是:

df = df[df['my_col'].isnull() == False]

1 个答案:

答案 0 :(得分:3)

因此python具有短路逻辑运算符andornot。这些在python中具有非常特殊的含义,无法覆盖(bool必须返回a and/or ba始终返回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