Eu tenho dados, nos quais eu quero encontrar o número de NaN
, para que, se for menor que algum limite, eu soltarei essas colunas. Eu olhei, mas não consegui encontrar nenhuma função para isso. existe value_counts
, mas seria lento para mim, porque a maioria dos valores é distinta e eu quero NaN
apenas contar .
461
df
você pode usardf.isnull().sum().sum()
.sum(axis=0)
qual é o comportamento padrão. E para obter linhas de linhas.sum(axis=1)
.df.isnull().values.sum()
df['column_name'].isna().sum()
também funciona se alguém está se perguntando.Você pode subtrair o comprimento total da contagem de valores que não são nan:
Você deve cronometrar seus dados. Para séries pequenas, a velocidade é 3x em comparação com a
isnull
solução.fonte
isnull
já é duas vezes mais rápido que isso.Vamos supor que
df
seja um DataFrame de pandas.Então,
Isso fornecerá o número de valores de NaN em todas as colunas.
Se você precisar, valores de NaN em todas as linhas,
fonte
Com base na resposta mais votada, podemos definir facilmente uma função que nos fornece um quadro de dados para visualizar os valores ausentes e a porcentagem de valores ausentes em cada coluna:
fonte
Desde o pandas 0.14.1, minha sugestão aqui para ter um argumento de palavra-chave no método value_counts foi implementada:
fonte
se apenas contando os valores nan em uma coluna de pandas aqui é uma maneira rápida
fonte
Se você estiver usando o Jupyter Notebook, que tal ....
ou
ou há algum NaNs nos dados; se sim, onde?
fonte
O abaixo imprimirá todas as colunas Nan em ordem decrescente.
ou
O abaixo imprimirá as primeiras 15 colunas Nan em ordem decrescente.
fonte
Você pode usar a seguinte função, que fornecerá saída no Dataframe
Basta copiar e colar a seguinte função e chamá-la passando o Dataframe do seu panda
Resultado
Se você deseja simplificar, pode usar a seguinte função para obter valores ausentes em%
fonte
Para contar zeros:
Para contar NaN:
ou
fonte
Você pode usar o método value_counts e imprimir valores de np.nan
fonte
s.value_counts(dropna = False)
Use abaixo para uma contagem específica de colunas
fonte
Isto irá fazer o truque.
fonte
Aqui está o código para contar
Null
valores na coluna:fonte
Há um bom artigo do Dzone de julho de 2017 que detalha várias maneiras de resumir os valores de NaN. Confira aqui .
O artigo que citei fornece um valor adicional: (1) Mostrando uma maneira de contar e exibir as contagens de NaN para cada coluna, para que você possa decidir facilmente se deve ou não descartar essas colunas; (2) Demonstrando uma maneira de selecionar essas linhas em específicos que possuem NaNs para que possam ser descartados ou imputados seletivamente.
Aqui está um exemplo rápido para demonstrar a utilidade da abordagem - com apenas algumas colunas, talvez sua utilidade não seja óbvia, mas achei que seria útil para quadros de dados maiores.
fonte
Uma outra opção simples ainda não sugerida, apenas para contar NaNs, seria adicionar a forma para retornar o número de linhas com NaN.
fonte
df.isnull (). sum () fornecerá a soma em coluna dos valores ausentes.
Se você deseja saber a soma dos valores ausentes em uma coluna específica, o código a seguir funcionará df.column.isnull (). Sum ()
fonte
com base na resposta que foi dada e algumas melhorias, esta é a minha abordagem
fonte
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
Caso você precise obter as contagens não-NA (não-Nenhuma) e NA (Nenhuma) entre os diferentes grupos, retiradas por grupo por:
Isso retorna as contagens de não NA, NA e número total de entradas por grupo.
fonte
Usei a solução proposta por @sushmit no meu código.
Uma possível variação do mesmo também pode ser
A vantagem disso é que ele retorna o resultado para cada uma das colunas no df a partir de agora.
fonte
Dá como saída:
fonte
Suponha que você queira obter o número de valores ausentes (NaN) em uma coluna (série) conhecida como preço em um dataframe chamado reviews
Para obter os valores ausentes, com n_missing_prices como a variável, faça
sum é o método-chave aqui, estava tentando usar count antes que eu percebesse que sum é o método certo a ser usado neste contexto
fonte
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Número de retorno de observações não-NA / nulas na série
fonte
Para sua tarefa, você pode usar pandas.DataFrame.dropna ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
Com o parâmetro thresh, você pode declarar a contagem máxima de valores de NaN para todas as colunas no DataFrame.
Saídas de código:
fonte