Como excluir uma linha inteira se os valores em uma coluna forem NaN [fechado]

8

Gostaria de eliminar todas as linhas que contêm valores de NaN pertencentes a uma coluna. Vamos supor que eu tenho um conjunto de dados como este:

Age  Height  Weight  Gender
12    5'7     NaN     M
NaN   5'8     160     M
32    5'5     165     NaN
21    NaN     155     F
55    5'10    170     NaN

Quero remover todas as linhas em que 'Gender' possui valores de NaN. A saída que eu gostaria:

Age  Height  Weight Gender
12   5'7     NaN     M
NaN  5'8     160     M
21   NaN     155     F

Desde já, obrigado!

uharsha33
fonte
2
Você realmente precisa nos dizer em que estrutura de dados está. Por exemplo, é SQL?
Paul Childs

Respostas:

15

Bem, se o conjunto de dados não for muito grande, sugiro usar pandas para limpar os dados. Então você precisaria primeiro fazer

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

Se você já possui o anaconda instalado, pode pular a etapa acima. Em seguida, você pode passar por um IDE (como o jupyter) ou pelo tipo de shell, os seguintes comandos

import pandas as pd
df = pd.read_csv("filename", dtype=str)
#or if excel file
#df = pd.read_excel("filename", dtype=str)

df = df[pd.notnull(df['Gender'])]

Então você deseja salvar seu resultado em um arquivo com

df.to_csv("newfile"); 
Haris Nadeem
fonte
5

Se você estiver trabalhando no Python Dataframe, tente isso.

import pandas as pd
df = df[np.isfinite(df['Gender'])]

Ou você pode usar notnull em vez de isfinite.

import pandas as pd
df = df[pd.notnull(df['Gender'])]
Jason Ray
fonte