Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Xóa giá trị khi tất cả level đều là NaN trong MultiIndex

Để xóa giá trị khi tất cả các level trong MultiIndex đều là NaN, hãy sử dụng phương thức multiIndex.dropna() với tham số how='all'.

Các bước thực hiện

1. Import thư viện cần thiết

import pandas as pd
import numpy as np

2. Tạo MultiIndex toàn NaN

multiIndex = pd.MultiIndex.from_arrays([[np.nan, np.nan], [np.nan, np.nan]], names=['a', 'b'])

3. Xóa giá trị khi tất cả level là NaN

print("\nXóa giá trị khi tất cả level là NaN...\n", multiIndex.dropna(how='all'))

Ví dụ hoàn chỉnh

import pandas as pd
import numpy as np

# Tạo MultiIndex toàn NaN
# names đặt tên cho các level
multiIndex = pd.MultiIndex.from_arrays([[np.nan, np.nan], [np.nan, np.nan]], names=['a', 'b'])

# Hiển thị MultiIndex
print("MultiIndex...\n", multiIndex)

# Xóa khi tất cả level là NaN (how='all')
print("\nXóa giá trị khi tất cả level là NaN...\n", multiIndex.dropna(how='all'))

Kết quả đầu ra

MultiIndex...
MultiIndex([(nan, nan), (nan, nan)], names=['a', 'b'])
Xóa giá trị khi tất cả level là NaN...
MultiIndex([], names=['a', 'b'])

Giải thích: Cả 2 row đều có tất cả level là NaN, nên how='all' xóa hết, trả về MultiIndex rỗng nhưng giữ tên level. how='all' chỉ xóa row mà TẤT CẢ level đều NaN.