Cara menghapus seluruh baris jika nilai dalam kolom adalah NaN [ditutup]

8

Saya ingin menghapus semua baris yang berisi nilai NaN yang berkaitan dengan kolom. Mari kita asumsikan saya memiliki dataset seperti ini:

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

Saya ingin menghapus semua baris di mana 'Gender' memiliki nilai NaN. Output yang saya inginkan:

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

Terima kasih sebelumnya!

uharsha33
sumber
2
Anda benar-benar harus memberi tahu kami apa struktur data itu. Misalnya apakah itu SQL?
Paul Childs

Jawaban:

15

Nah jika dataset tidak terlalu besar saya sarankan menggunakan panda untuk membersihkan data. Jadi, Anda harus terlebih dahulu melakukannya

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

Jika Anda sudah menginstal anaconda, Anda dapat melewati langkah di atas. Selanjutnya Anda bisa melalui IDE (seperti jupyter) atau melalui shell ketik perintah berikut

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

Maka Anda ingin menyimpan hasil Anda dalam file dengan

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

Jika Anda bekerja pada Python Dataframe, Silakan coba ini.

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

Atau Anda bisa menggunakan notnull sebagai ganti isfinite.

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