2014-11-12 32 views
16

Ben bir veritabanı sorgusundan boşluk hücrelerle aldığım bir panda veri karesi sütunum var. Boş hücreler "Yok" haline ve satırların her Yok olup olmadığını kontrol etmek istiyorum:Yok sayma değeri olan panda hücreleri seçme

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 
belgelerine başına My anlayış her satır isnull() komutuyla boş olup olmadığını kontrol edebilirsiniz olmasıdır

http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing

Bu işlev, ancak, benim için çalışmıyor:

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

alıyorum aşağıdaki hata:

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

Ben de birisi sadece "Hiçbiri" dizeleri yerini gördüm, ama bu yaklaşıma Bu varyasyonların hiçbiri benim için çalıştı: Rename "None" value in Pandas

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

Ben sonuçta her fillna işlevini kullanın ve dolgu başardı Bu satırlar boş bir dize yes_records_sample.fillna('') bir geçici çözüm olarak ve daha sonra ben yes_records_sample['name']=='' kontrol edebilirsiniz Ama ne 'Hiçbir şey' çalışır ve ne anlama geldiğini derinlemesine karıştı. Bir veri çerçevesindeki bir hücrenin 'Yok' olup olmadığını kolayca kontrol etmenin bir yolu var mı? Böyle

cevap

27

Çağrı it:

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

'Etki' == 'HIGH' veya 'clin_acc' boş değilse, pandalar veri çerçevesine bir sütunun nasıl ekleneceğini anlamaya çalışıyorum. Bu muazzam yardımcı oldu: nbs_annot ['pathogenic'] = (nbs_annot ['impact'] == 'YÜKSEK') | ~ Nbs_annot [ 'clin_acc']. Isnull() – SummerEla

1

herhangi yerleşik tam olarak hangi yapar bulamadık, bu yüzden elle bunu.

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

, kod çok benzer: Seri halinde, kod şudur

import numpy as np 
df = yes_records_sample 
n = np.empty_like(df) 
n[...] = None 
nones = df == n 
.isnull() Benim sorun NaN arasında ayırım yapmaz olmasıdır

ve Yok. Bu, uygulamanızda bir sorun olabilir veya olmayabilir.