Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Chuyển MultiIndex thành Index của Tuple chứa giá trị cấp độ

Để 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ứcKết quảDùng khi
to_flat_index()Index của tupleCần iterable các key
to_frame()DataFrameCần thao tác cột, export
tolist()List của tupleCần list Python thuần