Подтвердить что ты не робот

Как сравнить pandas DataFrame против None в Python?

Как сравнить pandas DataFrame с None? У меня есть конструктор, который принимает один из parameter_file или pandas_df, но не тот и другой.

def __init__(self,copasi_file,row_to_insert=0,parameter_file=None,pandas_df=None):
    self.copasi_file=copasi_file
    self.parameter_file=parameter_file
    self.pandas_df=pandas_df      

Однако, когда я позже попытаюсь сравнить pandas_df с None (т.е. когда self.pandas_df фактически содержит фреймворк pandas):

    if self.pandas_df!=None:
        print 'Do stuff'

Я получаю следующий TypeError:

  File "C:\Anaconda1\lib\site-packages\pandas\core\internals.py", line 885, in eval
    % repr(other))

TypeError: Could not compare [None] with block values
4b9b3361

Ответ 1

Используйте is not:

if self.pandas_df is not None:
    print 'Do stuff'

PEP 8 говорит:

Сравнение с синглтонами типа None всегда должно выполняться с помощью is или is not, никогда не выполняемых операторов равенства.

Существует также приятное объяснение.