2014-11-12 4 views
16

У меня есть столбец данных pandas, который я получил из запроса базы данных с ячейками blanck. Пустые клетки становятся «Нет», и я хочу, чтобы проверить, если каждая из строк не является None:Выбор ячеек pandas без значения

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 

Мое понимание в документации, что я могу проверить, если каждая строка является нулем с isnull() командой http://pandas.pydata.org/pandas-docs/dev/missing_data.html#values-considered-missing

Эта функция, однако, не работает для меня:

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

Я получаю следующее сообщение об ошибке:

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

Я также видел, что кто-то просто заменил «None» строки, но ни один из этих вариантов на этот подход работал для меня: Rename "None" value in Pandas

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

я был в конечном счете, может использовать функцию fillna и заполнить каждый из те строки с пустой строкой yes_records_sample.fillna('') как обходной путь, а затем я мог проверить yes_records_sample['name']=='' Но я глубоко смущен тем, как работает «Нет» и что это значит. Есть ли способ легко проверить, не является ли ячейка в фрейме данных «Нет»?

ответ

27

Зов это следующим образом:

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

Я пытался выяснить, как добавить столбец в кадр данных pandas, который является истинным, если «impact» == «HIGH» или «clin_acc» не является Null. Это очень помогло: nbs_annot ['pathogenic'] = (nbs_annot ['impact'] == 'HIGH') | ~ Nbs_annot [ 'clin_acc']. IsNull() – SummerEla

1

Я не смог найти каких-либо встроенных, который делает именно это, так что я сделать это вручную. В случае серии, код это:

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

В случае DataFrames, код очень похож:

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

Моя проблема с .isnull() состоит в том, что он не различает NaN и Нет. Это может быть или не быть проблемой в вашем приложении.

Смежные вопросы