我正在筛选我的DataFrame,删除那些特定列的单元格值为None的行。
df = df[df['my_col'].isnull() == False]
工作正常,但PyCharm告诉我:
PEP8:应将与False的比较改为'if cond is False:'或'if not cond:'
但我想知道如何将其应用于我的用例?使用'not ...'或'is False'都不起作用。 我当前的解决方案是:
df = df[df['my_col'].notnull()]
我正在筛选我的DataFrame,删除那些特定列的单元格值为None的行。
df = df[df['my_col'].isnull() == False]
工作正常,但PyCharm告诉我:
PEP8:应将与False的比较改为'if cond is False:'或'if not cond:'
但我想知道如何将其应用于我的用例?使用'not ...'或'is False'都不起作用。 我当前的解决方案是:
df = df[df['my_col'].notnull()]
Python有短路逻辑运算符not
、and
和or
。这些在Python中有非常具体的含义,不能被覆盖(not
必须返回bool
类型,a and/or b
总是返回a
或b
,否则会抛出错误)。
然而,Python也有可重载的布尔运算符~
(not)、&
(and)、|
(or)和^
(xor)。
你可能会认识到这些是int
位运算符,但Numpy(因此也包括pandas)使用它们来进行数组/系列布尔运算。
例如:
b = np.array([True, False, True]) & np.array([True, False, False])
# b --> [True False False]
b = ~b
# b --> [False True True]
所以你想要的是:df = df[~df['my_col'].isnull()]
我赞同PEP8,不要使用== False
。
df = df[df ['my_col']不为空()]
- MaxU - stand with Ukraine〜
)... - MaxU - stand with Ukrainedf = df.dropna(subset=['my_col'])
- jezrael