DataPrame для Python: как подсчитать и показать количество пропущенных значений только в dataframe? - PullRequest
0 голосов
/ 04 октября 2018

Я хотел бы спросить, как посчитать и показать количество пропущенных значений только в кадре данных?Я использую: df.isna().sum(), но он покажет все столбцы, включая столбцы не пропущенных значений.Как я могу только подсчитывать и показывать столбцы с отсутствующим значением с счетчиками по убыванию значения в кадре данных?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете использовать pipe, чтобы удалить нулевые значения из ваших итогов:

>>> df.isnull().sum().sort_values(ascending=False).pipe(lambda s: s[s > 0])
B    3
E    2
C    1
dtype: int64
0 голосов
/ 04 октября 2018

На мой взгляд, проще всего удалить 0 значения на boolean indexing, а затем sort_values:

s = df.isna().sum()
s = s[s != 0].sort_values(ascending=False)

Или использовать any для фильтров только столбцов с хотя бы одним True (один NaN):

df1 = df.isna()
s = df1.loc[:, df1.any()].sum().sort_values(ascending=False)

Образец:

df = pd.DataFrame({
        'A':list('abcdef'),
         'B':[np.nan,5,np.nan,5,5,np.nan],
         'C':[7,8,9,np.nan,2,3],
         'D':[1,3,5,7,1,0],
         'E':[np.nan,3,6,9,2,np.nan],
         'F':list('aaabbb')
})

s = df.isna().sum()
s = s[s != 0].sort_values(ascending=False)
print (s)
B    3
E    2
C    1
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...