Để tạo DataFrame từ các cấp độ của MultiIndex nhưng không sử dụng MultiIndex làm index của DataFrame, chúng ta dùng phương thức to_frame() với tham số index=False.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo MultiIndex có tên cấp độ
arrays = [[1, 2, 3, 4], ['John', 'Tim', 'Jacob', 'Chris']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
3. Tạo DataFrame không set index
dataFrame = multiIndex.to_frame(index=False)
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)
# Tạo DataFrame, index=False -> index mặc định 0,1,2,3
dataFrame = multiIndex.to_frame(index=False)
print("\nDataFrame (index=False):\n", dataFrame)
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']] DataFrame (index=False): ranks student 0 1 John 1 2 Tim 2 3 Jacob 3 4 Chris
So sánh index=True vs index=False
| Tham số | Index của DataFrame kết quả | Tên cột |
|---|---|---|
index=True (mặc định) | MultiIndex gốc | Tên cấp độ của MultiIndex |
index=False | RangeIndex (0, 1, 2, ...) | Tên cấp độ của MultiIndex |
Dùng index=False khi muốn DataFrame phẳng (flat) để dễ thao tác, merge, export CSV.