Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - ลบค่าเมื่อระดับใดระดับหนึ่งเป็น NaN ใน MultiIndex (dropna how='any')

ในการลบค่าที่ ระดับใดระดับหนึ่ง (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' จึงถูกลบทั้งสองแถว