如何过滤条件符合 PEP8 的 Pandas Dataframe?
How can I make filtering a Pandas Dataframe with a condition conform to PEP8?
用这样的条件过滤 Pandas Dataframe 似乎很标准
filter_ = (df == True)
df = df[filter_]
但根据 PyCharm,这不符合 PEP 8,我使用 Pylint
收到此消息
C0121:与 True 的比较应该只是 'expr'(单例比较)
是否有 PEP 8 友好的方式来做到这一点?
这是 ==
运算符被重载以改变其效果的情况吗?看起来是的。如果是,那么显然 linting 工具将很难识别这一点并提供有意义的建议。
就我个人而言,我不喜欢这种改变含义(语义)的运算符重载。我会避免使用它们,因为它们改变了人们阅读代码的方式并且令人困惑或至少模棱两可。
也许我会建议,要么保持相同的模糊符号并禁用该指令的一个特定的 linting 错误:
filter_ = (df == True) # pylint: disable=singleton-comparison
[doc]
或者使用更明确的表示法(我对pandas不熟悉,所以不保证下面的代码,但至少思路应该是有点适用于任何上下文,不仅 pandas):
用这样的条件过滤 Pandas Dataframe 似乎很标准
filter_ = (df == True)
df = df[filter_]
但根据 PyCharm,这不符合 PEP 8,我使用 Pylint
收到此消息C0121:与 True 的比较应该只是 'expr'(单例比较)
是否有 PEP 8 友好的方式来做到这一点?
这是 ==
运算符被重载以改变其效果的情况吗?看起来是的。如果是,那么显然 linting 工具将很难识别这一点并提供有意义的建议。
就我个人而言,我不喜欢这种改变含义(语义)的运算符重载。我会避免使用它们,因为它们改变了人们阅读代码的方式并且令人困惑或至少模棱两可。
也许我会建议,要么保持相同的模糊符号并禁用该指令的一个特定的 linting 错误:
filter_ = (df == True) # pylint: disable=singleton-comparison
[doc]
或者使用更明确的表示法(我对pandas不熟悉,所以不保证下面的代码,但至少思路应该是有点适用于任何上下文,不仅 pandas):