Como posso obter o número de valores ausentes em cada linha no dataframe do Pandas. Gostaria de dividir o quadro de dados em diferentes quadros de dados que tenham o mesmo número de valores ausentes em cada linha.
Alguma sugestão?
Você pode aplicar uma contagem nas linhas assim:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
resultado:
0: 3
1: 1
2: 0
Você pode adicionar o resultado como uma coluna como esta:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Resultado:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
Ao usar pandas, para tentar evitar operações que executam em um loop, incluindo
apply
,map
,applymap
etc. Isso é lento!Se você deseja contar os valores ausentes em cada coluna, tente:
df.isnull().sum()
oudf.isnull().sum(axis=0)
Por outro lado, você pode contar em cada linha (qual é a sua pergunta):
df.isnull().sum(axis=1)
É aproximadamente 10 vezes mais rápido que a solução de Jan van der Vegt (BTW conta valores válidos, em vez de valores ausentes):
fonte
A maneira simplista:
fonte
Ou você pode simplesmente usar o método info para objetos de quadro de dados:
que fornece contagens de valores não nulos para cada coluna.
fonte
valores nulos ao longo da coluna,
valores em branco ao longo da coluna,
valores nulos ao longo da linha,
valores em branco ao longo da linha,
fonte
Esse snippet retornará o valor inteiro do número total de colunas com valor ausente:
fonte
fonte
Se você deseja contar os valores ausentes:
fonte