Cómo eliminar una fila completa si los valores en una columna son NaN [cerrado]

8

Me gustaría eliminar todas las filas que contienen valores NaN pertenecientes a una columna. Supongamos que tengo un conjunto de datos 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

Quiero eliminar todas las filas donde 'Sexo' tiene valores NaN. La salida que me gustaría:

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

¡Gracias por adelantado!

uharsha33
fuente
2
Realmente tiene que decirnos en qué estructura de datos está. Por ejemplo, ¿es SQL?
Paul Childs

Respuestas:

15

Bueno, si el conjunto de datos no es demasiado grande, sugeriría usar pandas para limpiar los datos. Entonces primero tendrías que hacer

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

Si ya tiene instalada una anaconda, puede omitir el paso anterior. A continuación, puede pasar por un IDE (como jupyter) o mediante el shell, escriba los siguientes 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'])]

Entonces querrá guardar su resultado en un archivo con

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

Si está trabajando en Python Dataframe, intente esto.

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

O puede usar notnull en lugar de isfinite.

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