2016-06-16 10 views
5

Sto recuperando le righe con alcuni valori da dataframe panda con il seguente codice. Devo convertire questo codice in pandas.query().Pandas.dataframe.query() - recupera le righe non nulle (Panda equivalente a SQL: "NON È NULL")

results= rs_gp[rs_gp['Col1'].notnull()] 

Quando converto a: results= rs_gp.query('Col1!=None')

Mi dà l'errore 'Nessuno non è definito'. Qualcuno può aiutare.

Grazie, Rtut

+0

qual è il dtype di 'Col1'? – MaxU

+0

Ciao Max, il tipo di dati è una stringa – Rtut

risposta

6

Possiamo usare il fatto che NaN != NaN:

rs_gp.query('Col1 == Col1') 

Demo:

In [1]: np.nan == np.nan 
Out[1]: False 

Quindi confrontando colonna a se stesso sarà di noi solo i valori non-nan di ritorno:

In [42]: df = pd.DataFrame({'Col1':['aaa', np.nan, 'bbb', None, '', 'ccc']}) 

In [43]: df 
Out[43]: 
    Col1 
0 aaa 
1 NaN 
2 bbb 
3 None 
4 
5 ccc 

In [44]: df.query('Col1 == Col1') 
Out[44]: 
    Col1 
0 aaa 
2 bbb 
4 
5 ccc 
+0

Perfetto. Molte grazie! – Rtut

+0

@ Rtut, siete i benvenuti! :) – MaxU