3
respostas

Como descobrir quais colunas têm algum dado faltante/'Nan' em um dataframe Pandas

Tenho um dataframe Pandas chamado UNSW11.

O código abaixo retorna um dataframe de booleanos, que é muito grande:

import pandas as pd
import numpy as np

UNSW11 = pd.read_csv('/home/govinda/Desktop/UNSW-NB15_1_ed.csv')

pd.isnull(UNSW11) #dados faltantes

https://ibb.co/dyxseo

Eu gostaria que retornasse apenas as colunas que contivessem alguma linha de valor nulo/'Nan'. Como fazer?

3 respostas

Edson,

Pode usar: UNSW11.dropna(axis=1)

mas vai tirar qualquer coluna que tenha pelo menos 1 dado null ou ainda pode usar esta:

link: https://stackoverflow.com/questions/22551403/python-pandas-filtering-out-nan-from-a-data-selection-of-a-column-of-strings

@Welton Vaz de Souza:

Obrigado! Qual a diferença entre testar isna() /isnull() ?

Edson,

Aparentemente nenhuma... Acho que só mudaram o nome. Até os exemplos são com isna(): https://pandas.pydata.org/pandas-docs/stable/generated/pandas.isnull.html

No nível básico, os pandas oferecem duas funções para testar dados ausentes isnull()e notnull(). Como você pode suspeitar, estas são funções simples que retornam um valor booleano indicando se o valor do argumento passado é de fato dados ausente.

Além das funções acima, os pandas também fornecem dois métodos para verificar dados ausente em objetos de Série ou DataFrames. Esses métodos avaliam cada objeto na Série ou DataFrame e fornecem um valor booleano indicando se os dados são faltantes ou não.

isna() = Detectar valores ausentes.

Retorna um objeto booleano do mesmo tamanho, indicando se os valores são NaN. Valores NaN, como None ou numpy.NaN, são mapeados para valores True. Todo o resto é mapeado para valores falsos. Caracteres como strings vazias ''ou numpy.inf não são considerados valores de NaN (a menos que você defina:

pandas.options.mode.use_inf_as_na = True