2014-11-12 13 views
16

Mam kolumnę pandasowej ramki danych, którą otrzymałem z kwerendy bazy danych z komórkami blanck. Puste komórki stają się „None” i chcę, aby sprawdzić, czy każdy z wierszy jest None:Wybieranie komórek pandy z wartością Brak

In [325]: yes_records_sample['name'] 
Out[325]: 
41055 John J Murphy Professional Building 
25260         None 
41757    Armand Bayou Nature Center 
31397         None 
33104    Hubert Humphrey Building 
16891       Williams Hall 
29618         None 
3770       Covenant House 
39618         None 
1342  Bhathal Student Services Building 
20506         None 

Moje zrozumienie za dokumentacji jest to, że mogę sprawdzić, czy każdy wiersz jest zerowy z poleceniem isnull()http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing

funkcja ta jednak nie działa dla mnie:

In [332]: isnull(yes_records_sample['name']) 

pojawia się następujący błąd:

NameError Traceback (most recent call last) 
<ipython-input-332-55873906e7e6> in <module>() 
----> 1 isnull(yes_records_sample['name']) 
NameError: name 'isnull' is not defined 

Widziałem też, że ktoś po prostu zastąpione „none” struny, ale żaden z tych wariantów tego podejścia pracował dla mnie: Rename "None" value in Pandas

yes_records_sample['name'].replace('None', "--no value--") 
yes_records_sample['name'].replace(None, "--no value--") 

byłem ostatecznie móc korzystać z funkcji fillna i wypełnić każdy z te wiersze z pustym ciągiem yes_records_sample.fillna('') jako obejście, a następnie mogę sprawdzić yes_records_sample['name']=='' Ale jestem głęboko zdezorientowany, jak działa "Żaden" i co to znaczy. Czy istnieje sposób, aby łatwo sprawdzić, czy komórka w ramce danych jest "Brak"?

Odpowiedz

27

nazwać to tak:

yes_records_sample['name'].isnull() 
+0

Próbowałem dowiedzieć się, jak dodać kolumnę do ramki danych pandy, która jest prawdziwa, jeśli "impact" == "HIGH" lub "clin_acc" nie ma wartości Null. To pomogło ogromnie: nbs_annot ['pathogenic'] = (nbs_annot ['impact'] == 'HIGH') | ~ nbs_annot ['clin_acc']. isnull() – SummerEla

1

nie mogłem znaleźć żadnej wbudowanej który robi dokładnie to, więc to zrobić ręcznie. W przypadku serii, kod to:

import numpy as np 
series = yes_records_sample['name'] 
n = np.empty_like(series) 
n[...] = None 
nones = series.values == n 

w przypadku DataFrames, kod jest bardzo podobny:

import numpy as np 
df = yes_records_sample 
n = np.empty_like(df) 
n[...] = None 
nones = df == n 

Mój problem z .isnull() jest to, że nie rozróżnia NaN i Brak. To może, ale nie musi być problem w twojej aplikacji.

Powiązane problemy