Come eliminare l'intera riga se i valori in una colonna sono NaN [chiuso]


8

Vorrei eliminare tutte le righe contenenti valori NaN relativi a una colonna. Supponiamo che io abbia un set di dati come questo:

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

Voglio rimuovere tutte le righe in cui "Sesso" ha valori NaN. L'output che vorrei:

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

Grazie in anticipo!


2
Devi davvero dirci in quale struttura di dati si trova. Ad esempio, è SQL?
Paul Childs,

Risposte:


15

Bene, se il set di dati non è troppo grande, suggerirei di utilizzare Panda per pulire i dati. Quindi dovresti prima farlo

python2

python2 -m pip install pandas

python3

python3 -m pip install pandas

Se hai già installato anaconda, puoi saltare il passaggio precedente. Successivamente è possibile passare attraverso un IDE (come jupyter) o tramite la shell digitare i seguenti comandi

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'])]

Quindi si desidera salvare il risultato in un file con

df.to_csv("newfile"); 

5

Se stai lavorando su Python Dataframe, prova questo.

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

Oppure puoi usare notnull invece di isfinite.

import pandas as pd
df = df[pd.notnull(df['Gender'])]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.