ในการลบค่าที่ ระดับใดระดับหนึ่ง (any level) เป็น NaN ใน MultiIndex ให้ใช้เมธอด multiIndex.dropna() พร้อมตั้งค่าพารามิเตอร์ how='any'
ขั้นตอนการทำงาน
1. นำเข้าไลบรารีที่จำเป็น
import pandas as pd
import numpy as np
2. สร้าง MultiIndex ที่มี NaN บางระดับ
multiIndex = pd.MultiIndex.from_arrays([[5, 10], [np.nan, 20], [25, np.nan], [35, 40]], names=['a', 'b', 'c', 'd'])
3. ลบค่าที่ระดับใดระดับหนึ่งเป็น NaN
print("\nDropping the value when any level is NaN...\n", multiIndex.dropna(how='any'))
ตัวอย่างโค้ดสมบูรณ์
import pandas as pd
import numpy as np
# สร้าง MultiIndex ที่มี NaN บางระดับ
multiIndex = pd.MultiIndex.from_arrays([[5, 10], [np.nan, 20], [25, np.nan], [35, 40]], names=['a', 'b', 'c', 'd'])
# แสดง MultiIndex
print("Multi-index...\n", multiIndex)
# ลบค่าที่ระดับใดระดับหนึ่งเป็น NaN (how='any')
print("\nDropping the value when any level is NaN...\n", multiIndex.dropna(how='any'))
ผลลัพธ์
Multi-index... MultiIndex([( 5, nan, 25.0, 35), (10, 20.0, nan, 40)], names=['a', 'b', 'c', 'd'])
Dropping the value when any level is NaN... MultiIndex([], names=['a', 'b', 'c', 'd'])
คำอธิบาย
how='any' หมายถึงลบแถวที่มี ระดับใดระดับหนึ่ง เป็น NaN ในที่นี้แถวแรกมี NaN ที่ระดับ 'b' แถวที่สองมี NaN ที่ระดับ 'c' จึงถูกลบทั้งสองแถว