2016-06-16 6 views
5

Pobieram wiersze z pewnymi wartościami z pandasowej ramki danych za pomocą następującego kodu. Muszę przekonwertować ten kod na pandas.query().Pandas.dataframe.query() - nie pobiera pustych wierszy (Pand równoważny z SQL: "IS NOT NULL")

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

Kiedy konwertować do: results= rs_gp.query('Col1!=None')

Daje mi błąd 'Żaden nie jest zdefiniowana'. Czy ktoś może pomóc.

Dzięki, Rtut

+0

co to jest typ "Col1"? – MaxU

+0

Hi Max, datatype jest ciągiem – Rtut

Odpowiedz

6

Możemy wykorzystać fakt, że NaN != NaN:

rs_gp.query('Col1 == Col1') 

Demo:

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

Więc porównując kolumny do siebie będzie nam tylko-NaN non Zwracane wartości:

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

Perfect. Wielkie dzięki! – Rtut

+0

@Rtut, nie ma za co! :) – MaxU

Powiązane problemy