pylint, pandas: Сравнение с True должно быть просто "expr" или "expr is True" (одиночное сравнение)

Кто-нибудь решал эту проблему с использованием панды?

C:525,59: Comparison to True should be just 'expr' or 'expr is True' (singleton-comparison)

это происходит в строке, где я использую:

df_current_dayparts_raw['is_standard'] == True

Я попробовал это, но не сработало:

df_current_dayparts_raw['is_standard'] is True
df_current_dayparts_raw['is_standard'].isin([True])
df_current_dayparts_raw['is_standard'].__eq__(True)

5 ответов

Если у вас есть экземпляр фрейма данных со следующим кодом

      test = pd.DataFrame({"bool": [True, False, True], "val":[1,2,3]})
>>> test
    bool  val
0   True    1
1  False    2
2   True    3

следующее должно возвращать только те поля, где "bool" имеет значение True

      test[test['bool']]

   bool  val
0  True    1
2  True    3

Вам не нужно явно указывать, что test['bool'] == True, test['bool'] должно быть достаточно. Это должно быть совместимо с pylint и удовлетворять одноэлементному сравнению.

Немного поздновато, но может кому пригодится. Это сработало для меня:

      if df_current_dayparts_raw['is_standard']:
    print("True")
      If df_current_dayparts_raw['is_standard'] :
   print ("This is how you do it")
    1. когда я использую ноутбук jupyter на Mac. Я не получаю такой ошибки:
    1. получить версию Python
      import sys 
print(sys.version)

    1. получить набор данных игрушек
      import pandas as pd 
data = pd.DataFrame({"A":['a', 'b', 'c', 'd'],"b": [1, 2, 3, 4]})
data

Вместо того <your_expr> == True, пытаться numpy.equal(<your_expr>, True). Конкретно:

imponrt numpy as np
np.equal(<your_expr>, True)
Другие вопросы по тегам