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.https://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)
|