Hướng dẫn how do you remove nan values from a column in python? - làm cách nào để xóa các giá trị nan khỏi một cột trong python?

Cách thả các hàng của gấu trúc DataFrame có giá trị trong một cột nhất định là NAN

Đây là một câu hỏi cũ đã bị đánh đến chết nhưng tôi tin rằng có một số thông tin hữu ích hơn được xuất hiện trên chủ đề này. Đọc tiếp nếu bạn đang tìm kiếm câu trả lời cho bất kỳ câu hỏi nào sau đây:

  • Tôi có thể thả hàng nếu bất kỳ giá trị nào của nó có nans không? Thế còn tất cả chúng là Nan?
  • Tôi chỉ có thể nhìn vào Nans trong các cột cụ thể khi thả hàng?
  • Tôi có thể thả hàng với số lượng giá trị NAN cụ thể không?
  • Làm cách nào để thả cột thay vì hàng?
  • Tôi đã thử tất cả các tùy chọn ở trên nhưng DataFrame của tôi sẽ không cập nhật!

DataFrame.dropna: Sử dụng và ví dụ

Người ta đã nói rằng # Removes all but the last row since there are no NaNs df.dropna() A B C 3 4.0 3.0 3.0 # Removes the first row only df.dropna(how='all') A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 0 là phương pháp kinh điển để loại bỏ Nans từ DataFrames, nhưng không có gì giống như một vài tín hiệu trực quan để giúp đỡ trên đường đi.

# Setup df = pd.DataFrame({ 'A': [np.nan, 2, 3, 4], 'B': [np.nan, np.nan, 2, 3], 'C': [np.nan]*3 + [3]}) df A B C 0 NaN NaN NaN 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0

Dưới đây là một chi tiết về các lập luận quan trọng nhất và cách chúng hoạt động, được sắp xếp theo định dạng Câu hỏi thường gặp.

Tôi có thể thả hàng nếu bất kỳ giá trị nào của nó có nans không? Thế còn tất cả chúng là Nan?

Tôi chỉ có thể nhìn vào Nans trong các cột cụ thể khi thả hàng?

  • Tôi có thể thả hàng với số lượng giá trị NAN cụ thể không?
  • Làm cách nào để thả cột thay vì hàng?

Tôi đã thử tất cả các tùy chọn ở trên nhưng DataFrame của tôi sẽ không cập nhật!

DataFrame.dropna: Sử dụng và ví dụ

Người ta đã nói rằng # Removes all but the last row since there are no NaNs df.dropna() A B C 3 4.0 3.0 3.0 # Removes the first row only df.dropna(how='all') A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 0 là phương pháp kinh điển để loại bỏ Nans từ DataFrames, nhưng không có gì giống như một vài tín hiệu trực quan để giúp đỡ trên đường đi.
If you just want to see which rows are null (IOW, if you want a boolean mask of rows), use # Removes all but the last row since there are no NaNs df.dropna() A B C 3 4.0 3.0 3.0 # Removes the first row only df.dropna(how='all') A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 4:

df.isna() A B C 0 True True True 1 False True True 2 False False True 3 False False False df.isna().any(axis=1) 0 True 1 True 2 True 3 False dtype: bool

Dưới đây là một chi tiết về các lập luận quan trọng nhất và cách chúng hoạt động, được sắp xếp theo định dạng Câu hỏi thường gặp.

Tôi chỉ có thể nhìn vào Nans trong các cột cụ thể khi thả hàng?

Tôi có thể thả hàng với số lượng giá trị NAN cụ thể không?

Làm cách nào để thả cột thay vì hàng?

# Drop all rows with NaNs in A df.dropna(subset=['A']) A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 # Drop all rows with NaNs in A OR B df.dropna(subset=['A', 'B']) A B C 2 3.0 2.0 NaN 3 4.0 3.0 3.0

Tôi có thể thả hàng với số lượng giá trị NAN cụ thể không?

Làm cách nào để thả cột thay vì hàng?

df.dropna(thresh=1) A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 df.dropna(thresh=2) A B C 2 3.0 2.0 NaN 3 4.0 3.0 3.0 df.dropna(thresh=3) A B C 3 4.0 3.0 3.0

Tôi đã thử tất cả các tùy chọn ở trên nhưng DataFrame của tôi sẽ không cập nhật!

DataFrame.dropna: Sử dụng và ví dụ

required_min_null_values_to_drop = 2 # drop rows with at least 2 NaN df.dropna(thresh=df.shape[1] - required_min_null_values_to_drop + 1) A B C 2 3.0 2.0 NaN 3 4.0 3.0 3.0

Làm cách nào để thả cột thay vì hàng?

Tôi đã thử tất cả các tùy chọn ở trên nhưng DataFrame của tôi sẽ không cập nhật!

DataFrame.dropna: Sử dụng và ví dụ

df.dropna() A B C 3 4.0 3.0 3.0 # All columns have rows, so the result is empty. df.dropna(axis=1) Empty DataFrame Columns: [] Index: [0, 1, 2, 3] # Here's a different example requiring the column to have all NaN rows # to be dropped. In this case no columns satisfy the condition. df.dropna(axis=1, how='all') A B C 0 NaN NaN NaN 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 # Here's a different example requiring a column to have at least 2 NON-NULL # values. Column C has less than 2 NON-NULL values, so it should be dropped. df.dropna(axis=1, thresh=2) A B 0 NaN NaN 1 2.0 NaN 2 3.0 2.0 3 4.0 3.0

Tôi đã thử tất cả các tùy chọn ở trên nhưng DataFrame của tôi sẽ không cập nhật!

DataFrame.dropna: Sử dụng và ví dụ

df.dropna(...) # wrong df.dropna(..., inplace=True) # right, but not recommended df = df.dropna(...) # right

Người ta đã nói rằng # Removes all but the last row since there are no NaNs df.dropna() A B C 3 4.0 3.0 3.0 # Removes the first row only df.dropna(how='all') A B C 1 2.0 NaN NaN 2 3.0 2.0 NaN 3 4.0 3.0 3.0 0 là phương pháp kinh điển để loại bỏ Nans từ DataFrames, nhưng không có gì giống như một vài tín hiệu trực quan để giúp đỡ trên đường đi.

//pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

DataFrame.dropna( self, axis=0, how='any', thresh=None, subset=None, inplace=False)

Chủ đề