2015-04-01 3 views
1

У меня есть кадр данных pandas с 83 столбцами и 4000 строк. Я намерен использовать данные для логистической регрессии и поэтому хочу сузить мои столбцы до тех, у кого наименьшее количество недостающих данных.Как получить частоту obsevations NaN в столбце dataframe pandas

Для этого я думал о ранжировании их на основе частоты наблюдений NaN. Я пробовал несколько вещей, таких как

econ_balance["BG.GSR.NFSV.GD.ZS"].describe() 
econ_balance["BG.GSR.NFSV.GD.ZS"].value_counts 
econ_balance["BG.GSR.NFSV.GD.ZS"]["NaN"] 
econ_balance["BG.GSR.NFSV.GD.ZS"][NaN] 

Ничего из этого не работает. Я всегда пробовал искать, если бы на этот вопрос был дан ответ, но не повезло.

Заранее спасибо за помощь

Джош

+3

df.isnull(). Sum() http://stackoverflow.com/questions/26266362/how-to-count-the-nan-values-in-the-column-in-panda-data- frame –

+0

Jeez Я неожиданно получил немедленный дубликат Закрыть – EdChum

ответ

3

Если вы ищете только для подсчета NaN значения:

In [2]: 

df = pd.DataFrame({'a':[0,1,np.NaN,np.NaN,np.NaN],'b':np.NaN, 'c':[np.NaN,1,2,3,np.NaN]}) 
df 
Out[2]: 
    a b c 
0 0 NaN NaN 
1 1 NaN 1 
2 NaN NaN 2 
3 NaN NaN 3 
4 NaN NaN NaN 
In [6]: 

df.isnull().astype(int).sum() 
Out[6]: 
a 3 
b 5 
c 2 
dtype: int64 

EDIT @CTZhu отметил отливку типа не требуется:

In [7]: 

df.isnull().sum() 
Out[7]: 
a 3 
b 5 
c 2 
dtype: int64 
+1

избили меня, кстати, я думаю, вы можете пропустить часть 'astype (int)'. –

+0

благодарит за помощь! – Josh

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