บทนำ
ใช้ MultiIndex.sortlevel() พร้อมระบุ level เพื่อจัดเรียงตามระดับนั้น (ค่าเริ่มต้น ascending=True)
ขั้นตอน
1. นำเข้าไลบรารีและสร้าง MultiIndex
import pandas as pd
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
2. จัดเรียงระดับ 1 (student) แบบ ascending (ค่าเริ่มต้น)
print("\nSort MultiIndex at the requested level...\n", multiIndex.sortlevel(1))
ตัวอย่างโค้ดเต็ม
import pandas as pd
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
print("The Multi-index...\n", multiIndex)
print("\nThe levels in Multi-index...\n", multiIndex.levels)
print("\nSort MultiIndex at the requested level...\n", multiIndex.sortlevel(1))
ผลลัพธ์
The Multi-index...
MultiIndex([(2, 'Peter'), (4, 'Chris'), (3, 'Andy'), (1, 'Jacob')],
names=['ranks', 'student'])
The levels in Multi-index...
[[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']]
Sort MultiIndex at the requested level...
(MultiIndex([(3, 'Andy'), (4, 'Chris'), (1, 'Jacob'), (2, 'Peter')],
names=['ranks', 'student']),
array([2, 1, 3, 0], dtype=int64))
คำอธิบาย
- จัดเรียงตามระดับ 1 (student) แบบ A→Z: Andy, Chris, Jacob, Peter
- คืนค่า
(sorted_MultiIndex, indexer)โดย indexer บอกตำแหน่งเดิม - ไม่ระบุ
ascendingจะเป็น True (น้อยไปมาก / A-Z)