Làm thế nào để chọn các hàng có NaN trong cột cụ thể?


104

Với khung dữ liệu này, làm cách nào để chỉ chọn những hàng có "Col2" bằng NaN?

In [56]: df = pd.DataFrame([range(3), [0, np.NaN, 0], [0, 0, np.NaN], range(3), range(3)], columns=["Col1", "Col2", "Col3"])

In [57]: df
Out[57]: 
   0   1   2
0  0   1   2
1  0 NaN   0
2  0   0 NaN
3  0   1   2
4  0   1   2

Kết quả sẽ là:

Out[57]: 
   0   1   2
1  0 NaN   0

Câu trả lời:


180

Hãy thử những cách sau:

df[df['Col2'].isnull()]

10
Ngoài ra df.loc[df['Col2'].isnull()]nếu .loc là loại lại điều
Alexander

2
Q: Làm thế nào để phủ định thị, tức là nơi dữ liệu trong cột "không phải là null"? A: bằng cách sử dụng .notnull()toán tử.
sk

10

@qbzenker đã cung cấp phương pháp thành ngữ nhất IMO

Dưới đây là một số lựa chọn thay thế:

In [28]: df.query('Col2 != Col2') # Using the fact that: np.nan != np.nan
Out[28]:
   Col1  Col2  Col3
1     0   NaN   0.0

In [29]: df[np.isnan(df.Col2)]
Out[29]:
   Col1  Col2  Col3
1     0   NaN   0.0
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.