Cách xóa toàn bộ hàng nếu các giá trị trong một cột là NaN [đã đóng]


8

Tôi muốn bỏ tất cả các hàng chứa giá trị NaN liên quan đến một cột. Giả sử tôi có một bộ dữ liệu như thế này:

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

Tôi muốn xóa tất cả các hàng trong đó 'Giới tính' có giá trị NaN. Đầu ra tôi muốn:

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

Cảm ơn trước!


2
Bạn thực sự phải cho chúng tôi biết cấu trúc dữ liệu đó là gì. Ví dụ: đó là SQL?
Paul Childs

Câu trả lời:


15

Chà, nếu tập dữ liệu không quá lớn, tôi sẽ đề nghị sử dụng gấu trúc để làm sạch dữ liệu. Vì vậy, trước tiên bạn cần phải làm

Python2

python2 -m pip install pandas

Python3

python3 -m pip install pandas

Nếu bạn đã cài đặt Anaconda, bạn có thể bỏ qua bước trên. Tiếp theo, bạn có thể đi qua một IDE (như jupyter) hoặc thông qua kiểu shell các lệnh sau

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

Sau đó, bạn sẽ muốn lưu kết quả của bạn trong một tệp với

df.to_csv("newfile"); 

5

Nếu bạn đang làm việc trên Python Dataframe, vui lòng thử điều này.

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

Hoặc bạn có thể sử dụng notnull thay vì isfinite.

import pandas as pd
df = df[pd.notnull(df['Gender'])]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.