Để chuyển đổi MultiIndex thành Index của các Tuple chứa giá trị của từng cấp độ, chúng ta sử dụng phương thức MultiIndex.to_flat_index().
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo MultiIndex
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
3. Chuyển thành Index của Tuple
print("\nChuyển MultiIndex thành Index của Tuple:\n", multiIndex.to_flat_index())
Ví dụ hoàn chỉnh
import pandas as pd
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
print("MultiIndex:\n", multiIndex)
print("\nCác cấp độ:\n", multiIndex.levels)
# Chuyển thành Index của Tuple
print("\nIndex của Tuple:\n", multiIndex.to_flat_index())
Kết quả đầu ra
MultiIndex: MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris')], names=['ranks', 'student']) Các cấp độ: [[1, 2, 3, 4], ['Chris', 'Jacob', 'John', 'Tim']] Index của Tuple: Index([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris')], dtype='object')
Đặc điểm của to_flat_index()
- Trả về pd.Index với
dtype='object'. - Mỗi phần tử là một tuple chứa giá trị của tất cả cấp độ.
- Không giữ tên cấp độ (names) trong Index kết quả.
- Hữu ích khi cần lặp qua các khóa (keys) của MultiIndex.
So sánh với các phương thức liên quan
| Phương thức | Kết quả | Dùng khi |
|---|---|---|
to_flat_index() | Index của tuple | Cần iterable các key |
to_frame() | DataFrame | Cần thao tác cột, export |
tolist() | List của tuple | Cần list Python thuần |