Để 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.