2016-03-25 11 views
13

Come si confronta un DataFrame di panda con None? Ho un costruttore che prende uno di uno parameter_file o uno pandas_df ma mai entrambi.Come confrontare panda DataFrame contro None in Python?

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  

Tuttavia, quando successivamente si tenta di confrontare la pandas_df contro None, (vale a dire quando self.pandas_df contiene in realtà un dataframe panda):

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

ottengo il seguente 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 

risposta

21

Utilizzare is not:

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

PEP 8 dice:

Comparisons to singletons like None should always be done with is or is not , never the equality operators.

C'è anche un bel explanation perché.